มันเป็นขนาดบัสที่อยู่หรือขนาดบัสข้อมูลที่กำหนดระบบ“ 8 บิต, 16- บิต, 32- บิต, 64- บิต” หรือไม่?


15

ความเข้าใจที่เรียบง่ายของฉันมีดังนี้

หน่วยความจำ (RAM) ประกอบด้วยบิตกลุ่มของ 8 ซึ่งเป็นรูปแบบไบต์ซึ่งแต่ละคนสามารถได้รับการจัดการและด้วยเหตุนี้หน่วยความจำที่อยู่แอดเดรสไบต์

Address Bus เก็บตำแหน่งของหน่วยความจำไบต์

หากแอดเดรสบัสมีขนาด 32 บิตนั่นหมายความว่ามันสามารถเก็บได้มากถึง 2 32ตัวเลขและดังนั้นจึงสามารถอ้างถึงหน่วยความจำสูงสุด 2 32ไบต์ = หน่วยความจำ 4GB และหน่วยความจำใด ๆ ที่ใหญ่กว่าไร้ประโยชน์

Data bus ใช้สำหรับส่งค่าที่จะเขียนไปยัง / อ่านออกจากหน่วยความจำ ถ้าฉันมี data บัสขนาด 32 บิตหมายความว่าสามารถเขียน / อ่านหน่วยความจำได้สูงสุด 4 ไบต์ต่อครั้ง ฉันไม่พบความสัมพันธ์ระหว่างขนาดนี้และขนาดหน่วยความจำสูงสุดเท่าที่จะเป็นไปได้

แต่ฉันอ่านที่นี่ว่า:

แม้ว่าระบบส่วนใหญ่สามารถกำหนดแอดเดรสแบบไบต์ได้ แต่ก็เหมาะสมที่โปรเซสเซอร์จะย้ายข้อมูลมากที่สุดเท่าที่จะทำได้ สิ่งนี้ทำได้โดยดาต้าบัสและขนาดของดาต้าบัสนั้นเป็นที่ที่ระบบชื่อ 8 บิตระบบ 16 บิตระบบ 32 บิตระบบ 64 บิตระบบ 64 บิต ฯลฯ มาจาก เมื่อบัสข้อมูลมีความกว้าง 8 บิตจะสามารถถ่ายโอน 8 บิตในการทำงานของหน่วยความจำเดียว เมื่อบัสข้อมูลมีความกว้าง 32 บิต (ตามปกติที่สุดในขณะที่เขียน) สูงสุด 32 บิตสามารถเคลื่อนย้ายได้ในการดำเนินการของหน่วยความจำเดียว

นี่บอกว่าขนาดของดาต้าบัสคืออะไรที่ทำให้ชื่อ OS 8 บิต, 16 บิตและอื่น ๆ เกิดอะไรขึ้นกับความเข้าใจของฉัน?


" มีอะไรผิดปกติกับความเข้าใจของฉัน? " - คุณกำลังพยายามทำให้คำนิยามเดียวเข้ากับสิ่งที่แตกต่าง ตัวอธิบายขนาดบิตถูกใช้ในเวลาต่างกันสำหรับสิ่งต่าง ๆ
ขี้เลื่อย

1
มันหมายถึงสิ่งที่ผู้ผลิตบอกว่ามันหมายถึง โดยทั่วไปนั่นจะเป็นสิ่งที่มีขนาดคล้ายกับขนาดรีจิสเตอร์ แต่มีหลายวิธีในการปลอม / สวิซเซิล
Daniel R Hicks

คำตอบ:


12

โดยทั่วไปขนาดของฐานข้อมูลจะถูกกำหนดโดยขนาดของตัวประมวลผลที่ลงทะเบียน บ่อยครั้งที่มันเป็นขนาดของตัวประมวลผลที่ลงทะเบียนซึ่งกำหนดประเภทระบบปฏิบัติการ (64 vs 32) ขนาดบัสจริงอาจแตกต่างจากในทางเทคนิค (8088 เป็นตัวอย่าง) แต่มันหายากมากที่ผู้เขียนคำพูดของคุณอาจเชื่อมโยงทั้งสองเข้าด้วยกัน

โดยทั่วไปขนาดตัวชี้จะตามขนาดลงทะเบียน แต่ความกว้างของบัสแอดเดรสทางกายภาพอาจใหญ่กว่า (เช่นเดียวกับ 8086 16 บิตที่ 20) หรือเล็กกว่า (เช่นเดียวกับ AMD 64 ที่ 48)


2
" ความกว้างของบัสแอดเดรสทางกายภาพนั้นใหญ่กว่า " - โดยเฉพาะอย่างยิ่งกับโปรเซสเซอร์ 4 บิตและ 8 บิต!
ขี้เลื่อย

ตกลง. แต่ฉันพยายามที่จะเข้าใจมันเล็กน้อย ฉันไม่พบความสัมพันธ์ระหว่างขนาดของฐานข้อมูลกับหน่วยความจำที่เป็นไปได้สูงสุดอย่างที่ฉันสามารถอธิบายได้ด้วยขนาดบัสที่อยู่ ดังนั้นคำตอบน่าจะเป็น "ไม่ใช่ที่อยู่บัสขนาด แต่เป็นข้อมูลขนาดบัส" (เพราะโดยปกติแล้วจะใหญ่เท่ากับตัวประมวลผลที่ลงทะเบียน) ฉันพลาดอะไรไปรึเปล่า?
ผู้เรียน

@learner ถูกต้องความสับสนก็อยู่ที่ขนาดตัวชี้สูงสุดของระบบคือขนาดของตัวประมวลผลที่ลงทะเบียน ในพื้นที่ที่อยู่ตามลำดับเช่นเดียวกับระบบที่ทันสมัยที่สุดซึ่งเท่ากับถูก จำกัด ด้วยขนาดของตัวประมวลผลที่ลงทะเบียนดังนั้นข้อ จำกัด การกำหนดที่อยู่ตามที่คุณชี้ให้เห็น โปรเซสเซอร์บางตัวโดยเฉพาะอย่างยิ่งรุ่นเก่าใช้เทคนิคเช่นการกำหนดแอดเดรสแบบแบ่งส่วนพิเศษเพื่อแก้ไขปัญหานี้
Dougvj

@Dougvj โอเคมันเริ่มชัดเจนขึ้นแล้ว แต่ทำไมขนาดของแอดเดรสบัสจึงแตกต่างจากขนาดรีจิสเตอร์ของตัวประมวลผล มันจะไม่สมเหตุสมผลกว่าหรือที่จะทำให้พวกมันเหมือนเดิม? และฉันสับสนเกี่ยวกับที่อยู่ที่ถูกเก็บไว้? (ที่อยู่บัสหรือตัวประมวลผลลงทะเบียนหรือไม่) ขอบคุณ
ผู้เรียน

1
@ learner ถูกต้องแล้ว ในการสรุป: การกำหนดระบบปฏิบัติการสอดคล้องกับขนาดของโปรเซสเซอร์ที่ลงทะเบียน แอดเดรสบัสอาจมีขนาดเท่ากันกับโปรเซสเซอร์ซึ่งลงทะเบียนไว้ดังนั้น RAM ที่สามารถกำหนดแอดเดรสได้สูงสุดนั้นไม่ขึ้นกับที่ทำ ตัวประมวลผลภายในอย่างไรก็ตามเกือบจะมีรูปแบบการกำหนดแอดเดรสที่เกี่ยวข้องกับพอยน์เตอร์ที่มีขนาดเดียวกับที่รีจิสเตอร์ลงทะเบียน
Dougvj

1

มันคือขนาดการลงทะเบียนและการจัดการหน่วยความจำภายในโปรเซสเซอร์

การใช้ลูกเล่นโปรเซสเซอร์ 16 บิตตัวหนึ่งมีบัสแอดเดรส 20 บิตดังนั้นจึงไม่ใช่หน่วยความจำภายนอกของโปรเซสเซอร์


1

ไม่มีระบบ "บริสุทธิ์" 32 หรือ 64 บิตดังนั้นข้อกำหนดจึงเป็นเพียงการประมาณเท่านั้น

เช่นใช้คำสั่งของคุณ"หน่วยความจำ (RAM) ประกอบด้วยบิตกลุ่ม 8 ซึ่งรูปแบบไบต์แต่ละแห่งซึ่งสามารถได้รับการแก้ไข" นั่นไม่ธรรมดามาก พีซีมี RAM บนโมดูล DIMM และที่มีความกว้าง 64 บิต ย้อนกลับไปใน 90s คุณมี SIMMs และมีความกว้าง 32 บิต

ใน DIMM ของระบบบางตัวต้องหรือสามารถจับคู่ ("ganged" / "dual channel") ซึ่งจะเป็น 128 databus แนวคิดนี้มีมาก่อนโปรเซสเซอร์ที่เรียกว่า "64 bits" จาก AMD และ Intel

กลุ่ม 64 บิตจาก DIMM เดียวสามารถแบ่งย่อยได้จริงใน 8 ไบต์ นั่นเป็นสิ่งที่ค่อนข้างชัดเจนโดย CPU ของคุณ นอกจากนี้ยังสามารถแบ่ง 64 บิตใน 4 * 16 บิต 2 * 32 บิตหรือใช้เพียง 64 บิตทั้งหมดเป็นตัวแปรเดียว

คำถามที่สำคัญที่สุดคือความกว้างของที่อยู่ ทุกไบต์ในหน่วยความจำมีที่อยู่ของตัวเอง แต่ไม่ทุกบิต นั่นหมายถึง 64 บิตที่คุณได้รับจาก DIMM เดียวมี 8 ที่อยู่ ต่ำสุดของเหล่านี้มักจะเป็น 8 เท่าในตอนนี้จำนวนที่อยู่ที่แตกต่างกันรองรับ CPU หรือไม่ มีสองคำตอบทั่วไปอย่างน้อยก็ในทางทฤษฎี สนับสนุน CPU บาง 2 32ที่อยู่ที่แตกต่างกัน, การสนับสนุนบางส่วน 2 64 ความแตกต่างนี้เป็นความแตกต่างที่พบมากที่สุดระหว่างระบบ 32 และ 64 บิต

ในทางปฏิบัติระบบ 64 บิตในปัจจุบันรองรับRAM น้อยกว่า 2 64ไบต์ นั่นจะไม่สามารถบันทึกได้และจะไม่เหมาะกับพีซีปกติ ความทรงจำนั้นจะมีน้ำหนักหลายล้านตัน!


มันเป็นโปรเซสเซอร์ที่ลงทะเบียนที่อยู่จะถูกเก็บไว้หรือที่อยู่บัส? คุณพูดว่า "CPU บางตัวรองรับที่อยู่ 2 ^ 32 ที่แตกต่างกัน ... " สิ่งที่พวกเขาถูก จำกัด โดย?
ผู้เรียน

โดยทั่วไปแล้วทั้งขนาดการลงทะเบียนและ MMU (หน่วยจัดการหน่วยความจำซึ่งเป็นส่วนหนึ่งของ CPU ซึ่งรับผิดชอบหน่วยความจำโดยตรง)
MSalters

0

ทั้งที่จริงแล้ว

โดยปกติบิตบน CPU จะอ้างอิงถึงขนาดของรีจิสเตอร์ภายใน CPU 32 บิตมีการลงทะเบียน 32 บิตซึ่งอาจหรือไม่อาจแบ่งออกเป็นส่วน ๆ ได้

มันสมเหตุสมผลที่จะมี CPU 32 บิตพร้อมบัสข้อมูล 32 บิตเนื่องจากคุณสามารถถ่ายโอนข้อมูลทั้งหมดจากหน่วยความจำโดยตรงไปยังรีจิสเตอร์ แต่คุณสามารถมีขนาดบัสข้อมูลได้ โดยปกติแล้วซีพียู 32 บิตจะมีบัสข้อมูล 32 บิตเพื่อให้ง่ายต่อการถ่ายโอนข้อมูลจากและไป

และยังมีเหตุผลที่จะใช้บัส 32 บิตด้วยเหตุผลสองประการ ที่อยู่บัสที่ใหญ่กว่าจะทำให้การกำหนดที่อยู่ทางอ้อมยากขึ้นเพราะคุณจะไม่มีการลงทะเบียนที่ใหญ่กว่าพอที่จะเก็บที่อยู่หน่วยความจำหรือ CPU จะต้องลงทะเบียนเฉพาะสำหรับการระบุที่อยู่หน่วยความจำโปรดทราบว่า CPU เก่าเช่น Intel แอดเดรสบัส 16 บิต ตรงกันข้ามบัสแอดเดรสที่เล็กกว่าการลงทะเบียนเป็นเพียงการสิ้นเปลืองทรัพยากร มีไมโครคอนโทรลเลอร์ที่ใช้บัสแอดเดรสที่เล็กกว่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.