Số học và logic đơn vị ALU : Thực hiện các chức năng xử lý dữ liệu của máy tính Registers : Cung cấp lưu trữ nội bộ của CPU CPU interconnectionCPU kết nối: Một số cơ chế cung cấp
Trang 1Chương 01&02 TỔNG QUAN
1 SỰ GIỚI THIỆU
1.1 Kiến trúc máy tính và tổ chức máy tính
Kiến trúc máy tính đề cập đến những thuộc tính của một hệ thống hiển thị cho một lập trình viên, hoặc nói một cách khác , các thuộc tính có ảnh hưởng trực tiếp đến việc thực hiện hợp lý của một chương trình
Ví dụ , bộ Hướng dẫn , số lượng bit được sử dụng cho dữ liệu đại diện , cơ chế I/O , các kỹ thuật giải quyết
Một vấn đề thiết kế kiến trúc cho một máy tính sẽ có một hướng dẫn
tổ chức máy tính dùng để chỉ các đơn vị hoạt động và mối liên kết của họ mà nhận ra các chi tiết kỹ thuật kiến trúc hoặc làm thế nào tính năng này được thực hiện
Do đó , các mô hình khác nhau trong gia đình có đặc điểm giá cả và hiệu suất khác nhau
Một kiến trúc đặc biệt có thể kéo dài nhiều năm và bao gồm một số mô hình máy tính khác nhau , tổ chức của nó thay đổi với sự thay đổi công nghệ
kiến trúc IBM System / 370 Kiến trúc này lần đầu tiên được giới thiệu vào năm 1970 và bao gồm một số mô hình
Trong những năm qua , IBM đã giới thiệu nhiều mẫu mới với công nghệ cải tiến để thay thế mô hình cũ , cung cấp tốc độ lớn hơn , chi phí thấp hơn , hoặc cả hai.Những
mô hình mới hơn giữ lại kiến trúc giống nhau
Tất cả các gia đình Intel x86 chia sẻ các kiến trúc cơ bản giống nhau
1.2 Cấu trúc và Chức năng
Cấu trúc
là cách thức mà các thành phần liên quan đến nhau
Chức năng
là hoạt động của các thành phần cá nhân như là một phần của cấu trúc
Hệ thống máy tính sẽ được mô tả từ trên xuống Chúng ta bắt đầu với các thành phần chính của một máy tính , mô tả cấu trúc và chức năng của nó , và tiến tới lớp thấp hơn trong hệ thống phân cấp
Trang 2hình.1.1 chức năng của máy tính
Đó cũng là điều cần thiết mà một cửa hàng máy tính dữ liệu Ngay cả khi máy tính đang
xử lý dữ liệu nhanh chóng (ví dụ , dữ liệu đi vào và được xử lý , và kết quả đi ra ngoài ngay lập tức) , máy tính tạm thời phải lưu trữ ít nhất là những mẩu dữ liệu đang được làm việc tại bất kỳ lúc nào Như vậy , có ít nhất một chức năng lưu trữ dữ liệu ngắn hạn
Quan trọng không kém , máy tính thực hiện một chức năng lưu trữ dữ liệu lâu dài File dữ liệu được lưu trữ trên máy tính để thu hồi tiếp theo và cập nhật
di chuyển dữ liệu
Các máy tính phải có khả năng di chuyển dữ liệu giữa bản thân và thế giới bên ngoài
môi trường hoạt động của máy tính bao gồm các thiết bị phục vụ như là một trong hai nguồn hoặc đích của dữ liệu
Khi nhận được dữ liệu hoặc giao cho một thiết bị được kết nối trực tiếp với máy tính , quá trình này được gọi là đầu vào - đầu ra ( I / O ) , và các thiết bị được gọi là một thiết bị ngoại vi
Khi dữ liệu được di chuyển trên một khoảng cách dài hơn, hoặc từ một thiết bị từ xa , quá trình này được gọi là truyền thông dữ liệu
Trang 3 Nói chung , tất cả các mối liên hệ của nó với môi trường bên ngoài có thể được phân loại như các thiết bị ngoại vi hoặc đường dây thông tin liên lạc
I / O : Di chuyển dữ liệu giữa máy tính và môi trường bên ngoài của nó
Hệ thống kết nối: Một số cơ chế cung cấp cho truyền thông giữa CPU , bộ nhớ chính ,
và I / O Một ví dụ phổ biến của hệ thống kết nối là bằng phương tiện của một hệ thống Bus, bao gồm một số tiến dây mà tất cả các thành phần khác đính kèm
Có thể có một hoặc nhiều từng thành phần nói trên Theo truyền thống , chỉ có một bộ xử lý duy nhất Trong những năm gần đây , đã có gia tăng sử dụng nhiều bộ xử lý trong một máy tính duy nhất
hình 1.3 máy tính : Cơ cấu Top-Level
Thú vị nhất và trong một số các các thành phần phức tạp nhất là CPU thành phần cấu trúc chính của nó là như sau :
Control unit : Điều khiển các hoạt động của CPU
Số học và logic đơn vị ( ALU ) : Thực hiện các chức năng xử lý dữ liệu của máy tính
Registers : Cung cấp lưu trữ nội bộ của CPU
CPU interconnection(CPU kết nối): Một số cơ chế cung cấp cho truyền thông giữa các thiết bị điều khiển , ALU , và Registers
Trang 42.sự phát triển Máy tính và Hiệu suất
2.1 Tóm tắt lịch sử của máy tính
Tóm tắt lịch sử của máy tính Thế hệ đầu tiên: ống chân không
ENIAC : Các ENIAC (Electronic Numerical Integrator và máy tính ) , được thiết kế và xây dựng tại Đại học Pennsylvania , là mục đích chung điện tử máy tính kỹ thuật số đầu tiên trên thế giới
Dự án này là một phản ứng với nhu cầu của Hoa Kỳ trong Thế chiến II
John Mauchly và John Eckert
Bắt đầu năm 1943 và hoàn thành năm 1946 Quá muộn cho nỗ lực chiến tranh
Được sử dụng cho đến năm 1955
Thập phân ( không phải nhị phân )
von Neumann / Turing
chương trình làm thay đổi cho ENIAC là vô cùng tẻ nhạt
Một máy tính có thể nhận được hướng dẫn của nó bằng cách đọc chúng từ bộ nhớ và một chương trình có thể được thiết lập hoặc thay đổi bằng cách thiết lập các giá trị của một phần bộ nhớ
Ý tưởng này , được biết đến như là khái niệm lưu trữ chương trình
Ấn phẩm đầu tiên của ý tưởng là trong một đề nghị năm 1945, von Neumann cho một máy tính mới, EDVAC (Electronic Discrete máy tính biến )
Alan Turing phát triển các ý tưởng tại cùng một thời điểm
Năm 1946 , von Neumann và các đồng nghiệp của ông bắt đầu thiết kế một máy tính chương trình được lưu trữ mới , được gọi là máy tính IAS , tại Viện Princeton nghiên cứu cao cấp
Các máy tính IAS , mặc dù không hoàn thành cho đến năm 1952, nhưng là nguyên mẫu của tất cả các máy tính mục đích chung sau này
Nó bao gồm
Một bộ nhớ chính , trong đó lưu trữ dữ liệu và hướng dẫn
Một số học và logic đơn vị ( ALU ) có khả năng hoạt động trên dữ liệu nhị phân
Một đơn vị kiểm soát, trong đó dịch các lệnh trong bộ nhớ và làm cho chúng được thực thi
Đầu vào và đầu ra ( I / O ) thiết bị điều hành bởi các đơn vị kiểm soát
Trang 5hình 2.1 Cấu trúc của máy tính IAS
Với trường hợp ngoại lệ hiếm hoi , tất cả các máy tính ngày nay có cấu trúc này chung giống nhau và chức năng và do đó được gọi là máy von Neumann
Bộ nhớ của IAS bao gồm 1.000 địa điểm lưu trữ , gọi là từ nhớ, gồm 40 chữ số nhị phân (bit )
Cả hai dữ liệu và hướng dẫn được lưu trữ ở đó Các số được biểu diễn dưới dạng nhị phân ,
và mỗi lệnh là một mã nhị phân
Mỗi số được đại diện bởi một bit dấu và một giá trị 39 -bit
Một chữ cũng có thể chứa hai hướng dẫn 20 -bit , với mỗi chỉ dẫn bao gồm một mã hoạt động 8 - bit ( opcode ) xác định các hoạt động được thực hiện và một địa chỉ(address) 12 -bit chỉ định một trong các từ trong bộ nhớ ( số 0-999 )
hình 2.2 Định dạng thẻ nhớ IAS
Trang 6hình 2.3 Cấu trúc mở rộng của máy tính IAS
Hình 2.3 cho thấy rằng cả hai Control unit và ALU chứa các địa điểm lưu trữ, gọi là thanh ghi , được xác định như sau :
Bộ nhớ đệm đăng ký ( MBR ) : Chứa một từ được lưu trữ trong bộ nhớ hoặc gửi đến các đơn vị I / O , hoặc được sử dụng để nhận được một lời từ bộ nhớ hoặc từ các đơn
vị I / O
địa chỉ bộ nhớ đăng ký ( MAR ) : Chỉ định địa chỉ trong bộ nhớ của từ được viết từ hoặc đọc vào MBR
Hướng dẫn chỉ thị ( IR ) : Chứa các lệnh mã máy 8 -bit được thực thi
đăng ký chỉ dẫn đệm ( IBR ) : có nhiệm vụ giữ tạm thời hướng dẫntừ bên phải một từ trong bộ nhớ
Chương trình truy cập (PC ) : Chứa địa chỉ của lệnh đôi tiếp theo sẽ được lấy từ bộ nhớ
Accumulator ( AC ) và multiplier quotient( MQ ) : có việc làm để giữ tạm thời các toán hạng và kết quả hoạt động ALU Ví dụ, kết quả của phép nhân hai số 40 - bit là một số 80 - bit; quan trọng nhất 40 bit được lưu trữ trong các AC và đáng kể nhất là trong MQ
Máy tính thương mại
Những năm 1950 chứng kiến sự ra đời của ngành công nghiệp máy tính với hai công ty, Sperry
701 được thiết kế chủ yếu cho các ứng dụng khoa học
Năm 1955, IBM giới thiệu các sản phẩm đồng hành 702, trong đó có một số tính năng phần cứng phù hợp cho các ứng dụng kinh doanh
Đây là những người đầu tiên của một chuỗi dài các 700/7000 máy tính thành lập IBM là nhà sản xuất máy tính thống trị áp đảo
Không giống như các ống chân không, mà đòi hỏi phải có dây, tấm kim loại, một viên thủy tinh,
và một chân không, các bóng bán dẫn là một thiết bị trạng thái rắn, được làm từ silicon
Các bóng bán dẫn được phát minh tại Bell Labs vào năm 1947 và đến năm 1950 đã đưa ra một
cuộc cách mạng điện tử
Trang 7 cho đến cuối năm 1950,Tuy nhiên, các máy tính bán dẫn hoàn toàn là thương mại có sẵn
Việc sử dụng các bóng bán dẫn xác định thế hệ máy tính thứ hai Nó đã được chấp nhận rộng rãi để phân loại các máy tính thành các thế hệ dựa trên các công nghệ phần cứng cơ bản
hình 2.4 Các thế hệ máy tính
Mỗi thế hệ mới được đặc trưng bởi hiệu năng xử lý cao hơn, dung lượng bộ nhớ lớn hơn, và kích thước nhỏ hơn so với trước đó
Nhưng có những thay đổi khác
Thế hệ thứ hai xuất hiện loại phức tạp hơn đơn vị số học và logic và đơn vị kiểm soát
Việc sử dụng các ngôn ngữ lập trình cao cấp, và cung cấp các phần mềm hệ thống với máy tính
Thế hệ thứ hai là cũng đáng chú ý cho sự xuất hiện của Tổng công ty Thiết bị kỹ thuật số (DEC) DEC được thành lập vào năm 1957, và trong năm đó, mẫu máy tính đầu tiên của nó, là PDP-1
Máy tính này và công ty này đã bắt đầu hiện tượng máy tính mini sẽ trở nên nổi bật trong thế
hệ thứ ba
Thế hệ thứ ba: Mạch tích hợp
đầu tiên, bóng bán dẫn khép kín duy nhất được gọi là thành phần rời rạc
Trong suốt những năm 1950 và đầu năm 1960, các thiết bị điện tử được sáng tác chủ yếu của các thành phần rời rạc - bóng bán dẫn, điện trở, tụ điện, và như vậy
thành phần riêng biệt được sản xuất riêng biệt, được đóng gói trong các thùng chứa riêng của
họ, và được hàn hoặc nối với nhau trên bảng mạch, mà sau đó đã được cài đặt trong máy tính, dao động, và các thiết bị điện tử khác
Những yêu cầu của cuộc sống đã bắt đầu để tạo ra các vấn đề trong ngành công nghiệp máy tính máy tính thế hệ thứ hai đầu chứa khoảng 10.000 transistor Con số này đã lên đến hàng trăm ngàn, làm cho việc sản xuất các máy mới hơn, mạnh mẽ hơn ngày càng khó khăn
Năm 1958 đến những thành tích mà cuộc cách mạng điện tử và bắt đầu kỷ nguyên của vi điện tử: phát minh ra mạch tích hợp
Nó là mạch tích hợp định nghĩa thế hệ thứ ba của máy tính
Các mạch tích hợp cho thấy rằng rằng các thành phần như bóng bán dẫn, điện trở, và dây dẫn
có thể được chế tạo từ một chất bán dẫn như silicon
Nó chỉ đơn thuần là một phần mở rộng của nghệ thuật trạng thái rắn để chế tạo toàn bộ một mạch trong một mảnh nhỏ của silicon hơn là lắp ráp các thành phần rời rạc làm từ miếng silicon riêng biệt vào cùng một mạch
Nhiều bóng bán dẫn có thể được sản xuất tại cùng một lúc trên một tấm wafer silicon đơn Quan trọng không kém, các transistor có thể được kết nối với một quá trình bằng kim để tạo thành mạch
Trang 8hình 2.5 Mối quan hệ giữa các Wafer, Chip và Cổng
Các thế hệ sau
Ngoài thế hệ thứ ba có ít sự đồng ý chung vào việc xác định thế hệ máy tính
Hình 2.4 cho thấy rằng đã có một số thế hệ sau này, dựa trên những tiến bộ trong công nghệ mạch tích hợp
Với sự ra đời của hội nhập quy mô lớn (LSI), hơn 1000 thành phần có thể được đặt trên một con chip mạch tích hợp duy nhất tích hợp rất quy mô lớn (VLSI) đạt hơn 10.000 thành phần trên mỗi chip, trong khi nhập siêu quy mô lớn hiện nay (ULSI) chip có thể chứa nhiều hơn một triệu linh kiện
BỘ NHỚ BÁN DẪN
Ứng dụng đầu tiên của công nghệ mạch tích hợp cho các máy tính đã được xây dựng trong những bộ vi xử lý (đơn vị điều khiển và số học và logic đơn vị) trong chip mạch tích hợp Nhưng nó cũng đã được tìm thấy rằng công nghệ này tương tự có thể được sử dụng để xây dựng bộ nhớ
Trong những năm 1950 và 1960, hầu hết các bộ nhớ máy tính được xây dựng từ những vân nhỏ của vật liệu sắt từ
Mỗi khoảng 1/16 của một inch trong vòng diameter những khoảng này được xâu thành chuỗi lên trên lưới
như là một nam châm, một vòng (gọi là lõi) đại diện cho một; nói theo cách khác, nó đứng cho một số không
bộ nhớ từ lõi khá nhanh; chỉ mất ít nhất là một phần triệu của một giây để đọc một bit được lưu trữ trong bộ nhớ
Sau đó, vào năm 1970, Fairchild sản xuất các bộ nhớ bán dẫn tương đối dung lượng đầu tiên
Chip này, về kích thước của một lõi duy nhất, có thể giữ 256 bit của bộ nhớ
nhanh hơn nhiều so với lõi, mất chỉ có 70 phần triệu của một giây để đọc một bit
Kể từ năm 1970, bộ nhớ bán dẫn đã được thông qua 13 thế hệ:
1K, 4K, 16K, 64K, 256K, 1M, 4M, 16M, 64M, 256M, 1G, 4G, và, như các văn bản này, các bit 16G trên một chip duy nhất
Mỗi thế hệ đã cung cấp gấp bốn lần mật độ lưu trữ của thế hệ trước, kèm theo giảm chi phí cho mỗi bit và giảm thời gian truy cập
Trang 9chip là cần thiết để xây dựng một bộ vi xử lý máy tính duy nhất
Một bước đột phá đã đạt được trong năm 1971, khi Intel phát triển 4004 của mình
4004 là chip đầu tiên để chứa tất cả các thành phần của một CPU trên một chip duy nhất: Các
bộ vi xử lý được sinh ra
hình 2.6 Sự phát triển Bộ vi xử lý của Intel
2.2Thiết kế cho hiệu suất (Tham khảo)
Cân hiệu suất
Bộ vi xử lý tăng tốc
Memory tăng công suất
Trang 10 bộ nhớ tốc độ chậm lại phía sau tốc độ xử lý
hình 2.7 Logic and Memory Performance Gap
Chương 03 cấu trúc từ trên xuống máy tính và Kết nối NHỮNG ĐIỂM CHÍNH
Các thành phần hệ thống máy tính lớn (bộ xử lý, bộ nhớ chính, module I / O) cần phải được kết nối với nhau để trao đổi dữ liệu và tín hiệu điều khiển
Các phương tiện phổ biến nhất của kết nối là sử dụng một hệ thống Bus chia sẻ bao gồm nhiều dòng
Trong các hệ thống hiện đại, có thường là một hệ thống phân cấp của Bus để nâng cao hiệu suất
các yếu tố thiết kế chính cho Bus bao gồm
Arbitration (cho dù sự cho phép để gửi tín hiệu trên các tuyến xe buýt được kiểm soát trực thuộc Trung ương hoặc trong một thời trang phân phối);
Timing (cho dù tín hiệu trên bus được đồng bộ hóa với một đồng hồ trung tâm hoặc được gửi không đồng bộ dựa trên việc truyền tải gần nhất);
Và độ rộng (số lượng dòng địa chỉ và số dòng dữ liệu)
3.1 các thành phần máy tính
Hầu như tất cả các mẫu thiết kế máy tính hiện đại dựa trên các khái niệm phát triển bởi John von Neumann tại Viện nghiên cứu cao cấp Princeton
Thiết kế này được gọi là kiến trúc von Neumann và được dựa trên ba khái niệm chính:
Dữ liệu và hướng dẫn được lưu trữ trong một bộ nhớ đọc-ghi đơn
Các nội dung của bộ nhớ này là địa chỉ của vị trí, mà không quan tâm đến các loại dữ liệu chứa ở đó
Thực hiện xảy ra trong một cách tuần tự (trừ khi có sửa đổi) từ một hướng dẫn tiếp theo
Khái niệm chương trình
Có một nhóm nhỏ các thành phần logic cơ bản có thể được kết hợp trong nhiều cách khác nhau để lưu trữ dữ liệu nhị phân và thực hiện các phép tính số học và logic hoạt động trên
dữ liệu đó
Nếu có một tính toán cụ thể được thực hiện
một cấu hình của các thành phần logic thiết kế đặc biệt cho việc tính toán có thể được xây dựng
Chúng ta có thể nghĩ về quá trình kết nối các thành phần khác nhau trong cấu hình
Trang 11mong muốn như là một hình thức của chương trình
Kết quả là "Chương trình" là trong các hình thức của phần cứng và được gọi là một
chương trình hữu tuyến
hình 3.1 a Lập trình trong phần cứng
hệ thống hữu tuyến là không linh hoạt
phần cứng dùng chung có thể làm nhiệm vụ khác nhau, được đưa ra đúng tín hiệu điều khiển
Thay vì lại dây, cung cấp một tập hợp mới các tín hiệu điều khiển
một chương trình là gì?
Toàn bộ chương trình thực sự là một chuỗi các bước Tại mỗi bước, một số số học hoặc logic hoạt động được thực hiện trên một số dữ liệu
Lập trình bây giờ là dễ dàng hơn nhiều Thay vì mắc lại dây cho phần cứng cho mỗi
chương trình mới, tất cả chúng ta cần phải làm là cung cấp một chuỗi mới của mã Mỗi mã,
có hiệu lực, một hướng dẫn, và một phần của phần cứng giải thích mỗi chỉ dẫn và tạo ra tín hiệu điều khiển
Một chuỗi mã hoặc hướng dẫn được gọi là phần mềm
hình 3.1b Lập trình phần mềm
Trang 12hình 3.2 Linh kiện máy tính: Top-Level
Việc trao đổi dữ liệu với bộ nhớ CPU Nó thường làm cho việc sử dụng hai nội bộ (CPU) đăng ký:
Một thanh ghi địa chỉ bộ nhớ (MAR), trong đó xác định địa chỉ trong bộ nhớ cho việc đọc hoặc viết tiếp theo
Sổ đăng ký bộ nhớ đệm (MBR), trong đó có chứa các dữ liệu được ghi vào bộ nhớ hoặc nhận dữ liệu đọc từ bộ nhớ
Tương tự như vậy, một đăng ký địa chỉ I / O (I / O AR) quy định cụ thể một I / O thiết bị cụ thể Một I / O đệm (I / O BR) đăng ký được sử dụng để trao đổi dữ liệu giữa một I / O module và CPU
Một môđun bộ nhớ bao gồm một tập hợp các địa điểm, xác định bởi địa chỉ số liên tục Mỗi địa điểm đều có chứa một số nhị phân có thể được hiểu như một bộ hướng dẫn hoặc dữ liệu
Một I / O module truyền dữ liệu từ thiết bị bên ngoài CPU vào bộ nhớ, và ngược lại Nó chứa
bộ đệm bên trong để giữ tạm thời các dữ liệu cho đến khi nó có thể được gửi vào
Việc xử lý cần thiết cho một chỉ dẫn duy nhất được gọi là một chu kỳ lệnh
Hai bước này được gọi là lấy chu kỳ và thực hiện chu kỳ
thực hiện chương trình ngừng chỉ khi máy đang tắt, một số loại lỗi không thể phục hồi xảy ra, hay một hướng dẫn chương trình ngừng máy tính đang gặp phải
hình 3.3 Chu kỳ lệnh cơ bản
3.2.1 lệnh tìm nạp và Thực thi
Vào lúc bắt đầu của mỗi chu kỳ lệnh, bộ xử lý tìm nạp lệnh từ bộ nhớ
Trong một bộ xử lý điển hình, một thanh ghi gọi là bộ đếm chương trình (PC) giữ địa chỉ của lệnh để được lấy sau
nói cách khác, bộ vi xử lý luôn gia số PC sau mỗi lệnh lấy để nó sẽ lấy các lệnh tiếp theo trong chuỗi
Các hướng dẫn lấy được nạp vào một thanh ghi trong bộ vi xử lý được gọi là đăng ký chỉ dẫn (IR)
Các hướng dẫn có chứa bit xác định hành động vi xử lý là để dùng
Bộ vi xử lý diễn dịch lệnh và thực hiện các hành động cần thiết
Nói chung, những hành động này rơi vào bốn loại:
Trang 13 Bộ vi xử lý bộ nhớ: Dữ liệu có thể được chuyển từ bộ xử lý đến bộ nhớ hoặc từ bộ nhớ để
Điều khiển: Một lệnh có thể chỉ định rằng trình tự thực hiện được thay đổi
Ví dụ: bộ vi xử lý có thể lấy một lệnh từ vị trí 149, trong đó quy định rằng các lệnh kế tiếp được từ vị trí 182 Bộ xử lý sẽ nhớ sự kiện này bằng cách thiết lập chương trình truy cập đến 182.tu, trên lấy chu kỳ tiếp theo, các hướng dẫn sẽ được lấy từ vị trí 182 chứ không phải 150
Một lệnh thực hiện có thể liên quan đến một sự kết hợp của những hành động này
Hãy xem xét một ví dụ đơn giản sử dụng một máy tính giả thuyết bao gồm các đặc điểm được liệt kê trong hình 3.4
Các bộ vi xử lý có chứa một thanh ghi dữ liệu duy nhất, được gọi là một ắc (AC)
Cả hai lệnh và dữ liệu dài 16 bit Vì vậy, nó là thuận tiện để tổ chức từ 16-bit bộ nhớ sử dụng
Định dạng hướng dẫn
cung cấp 4 bit cho mã máy, do đó có thể có như nhiều như 24 = 16 opcodes khác nhau
lên đến 212 = 4096 (4K) từ bộ nhớ có thể được trực tiếp giải quyết
hình 3.4 Các đặc điểm của một máy Giả định
Hình 3.5 minh họa một chương trình thực hiện một phần, cho thấy các phần có liên quan của
bộ nhớ và bộ xử lý đăng ký
Đoạn chương trình thể hiện thêm nội dung của từ bộ nhớ tại địa chỉ 940 đến nội dung của từ bộ nhớ tại địa chỉ 941 và lưu trữ các kết quả ở vị trí thứ hai
Trang 14hình 3.5Ví dụ về Chương trình Thực hiện
Ba lệnh, có thể được mô tả như là ba tìm nạp và ba thực hiện chu kỳ, được yêu cầu:
Các máy tính có chứa 300 địa chỉ của lệnh đầu tiên hướng dẫn này (giá trị năm 1940 ở hệ thập lục phân) được nạp vào IR hướng dẫn đăng ký và các PC được tăng lên
4 bit đầu tiên (đầu tiên chữ số thập lục phân) trong IR chỉ ra rằng AC là để nạp 12 bit còn lại (ba chữ số thập lục phân) xác định các địa chỉ (940) mà từ đó dữ liệu sẽ được nạp
Câu lệnh tiếp theo (5941) được lấy từ vị trí 301 và PC được tăng lên
Các nội dung cũ của AC và nội dung của vị trí 941 được bổ sung và kết quả được lưu trữ trong các AC
Câu lệnh tiếp theo (2941) được lấy từ vị trí 302 và PC được tăng lên
Nội dung của AC được lưu trữ ở vị trí 941
Chu trình thực hiện cho một hướng dẫn cụ thể có thể gồm nhiều hơn một tham chiếu đến bộ nhớ Ngoài ra, thay vì tham chiếu bộ nhớ, một lệnh có thể chỉ định một I / O hoạt động
hình 3.6.Sơ đồ tổng quát hướng dẫn chu trình
lệnh tìm nạp (if): Đọc lệnh từ bộ nhớ vị trí của nó vào bộ xử lý
giải mã hoạt động hướng dẫn (IOD): Phân tích hướng dẫn để xác định loại hình hoạt động phải thực hiện và toán hạng) sẽ được sử dụng
Trang 15 tính toán hạng địa chỉ (OAC): Nếu các hoạt động liên quan đến việc tham chiếu đến một toán hạng trong bộ nhớ hoặc có sẵn thông qua I / O, sau đó xác định địa chỉ của toán hạng
Toán hạng tìm nạp (of): tìm nạp toán hạng từ bộ nhớ hoặc đọc nó từ I / O
hoạt động dữ liệu (do): Thực hiện các hoạt động ghi trong hướng dẫn
lưu toán hạng (os): Ghi kết quả vào bộ nhớ hoặc ra I / O
như trong phần trên của hình 3.6 liên quan đến sự trao đổi giữa các bộ xử lý và bộ nhớ trong hai hoặc một module I / O
như ở phần dưới của sơ đồ chỉ liên quan đến các hoạt động xử lý nội bộ
Các OAC xuất hiện hai lần, vì một lệnh có thể liên quan đến đọc, viết, hoặc cả hai Tuy nhiên, hành động thực hiện trong trạng thái đó về cơ bản là như nhau trong cả hai trường hợp
Một chỉ dẫn duy nhất có thể xác định một hoạt động được thực hiện trên một vector (mảng một chiều) của các con số hoặc một chuỗi (mảng một chiều) của kí tự
Các chương trình người dùng thực hiện một loạt các lệnh VIẾT xen kẽ với việc xử lý
Mã phân đoạn 1, 2, và 3 đề cập đến trình tự các hướng dẫn mà không liên quan đến I / O
Các lệnh VIẾT là một chương trình I / O mà là một tiện ích hệ thống và điều đó sẽ thực hiện các hoạt động I / O thực tế
Các I / O Chương trình bao gồm ba phần:
Trang 16hình 3.7 Chương trình kiểm soát dòng số
Một chuỗi các lệnh, số 4 trong hình, để chuẩn bị cho các hoạt động I / O thực tế Điều này có thể bao gồm việc sao chép dữ liệu được đầu ra vào một bộ đệm đặc biệt và chuẩn bị các thông số cho một lệnh thiết bị
thực tế Các I / O lệnh, Nếu không có việc sử dụng các ngắt, một khi lệnh này được ban hành, các chương trình phải chờ đợi cho thiết bị I / O để thực hiện các chức năng yêu cầu (hoặc định kỳ thăm dò ý kiến các thiết bị) chương trình có thể chờ đợi bằng cách đơn giản nhiều lần thực hiện một hoạt động kiểm tra để xác định xem I / O hoạt động được thực hiện
Một chuỗi các hướng dẫn, số 5 trong hình, để hoàn thành các hoạt động Điều này có thể bao gồm thiết lập một tín hiệu cho thấy sự thành công hay thất bại của hoạt động
Từ quan điểm của các chương trình sử dụng, một ngắt chỉ đó là: sự gián đoạn của chuỗi bình thường thực hiện
Vì vậy, chương trình người dùng không có chứa bất cứ một mã số đặc biệt để chứa ngắt; bộ
vi xử lý và hệ điều hành có trách nhiệm đình chỉ việc sử dụng chương trình và sau đó khôi phục nó tại cùng một điểm
Trang 17hình 3.8 Chuyển điều khiển thông qua ngắt
Để thích ứng với ngắt, một chu kỳ ngắt được thêm vào chu kỳ lệnh
Trong chu kỳ gián đoạn, kiểm tra xử lý để xem nếu có ngắt xảy ra, chỉ ra bởi sự hiện diện của một tín hiệu ngắt
Nếu không có ngắt được cấp phát, bộ xử lý tiến hành để tìm nạp chu kỳ và lấy lệnh tiếp theo của chương trình hiện hành
Nếu một ngắt được cấp phát, bộ xử lý tiến hành như sau đây:
hình 3.9 chu trình lệnh với ngắt
Tạm thời ngừng thực hiện chương trình hiện đang được thực hiện và lưu bối cảnh của nó Điều này có nghĩa là lưu địa chỉ của lệnh kế tiếp để được thực thi (nội dung hiện tại của bộ đếm chương trình) và các dữ liệu khác có liên quan đến hoạt động hiện tại của bộ xử lý
Nó đặt chương trình truy cập đến địa chỉ bắt đầu của một lệnh xử lý ngắt
Chương trình xử lý ngắt thường là một phần của hệ điều hành Thông thường, chương trình này
sẽ xác định bản chất của các ngắt và thực hiện bất cứ hành động cần thiết
hình 3.12 chu trình lệnh định thời Diagram, với ngắt
NGẮT NHIỀU
Ví dụ, một chương trình có thể nhận dữ liệu từ một đường truyền thông và in kết quả
Các máy in sẽ tạo ra một ngắt mỗi khi nó hoàn thành một hoạt động in
Bộ điều khiển đường truyền thông sẽ tạo ra một ngắt mỗi khi một đơn vị dữ liệu đến
Hai cách tiếp cận có thể được thực hiện để giải quyết với nhiều ngắt
Trang 18 Đầu tiên là để vô hiệu hóa ngắt trong khi một ngắt đang được xử lý
Một ngắt bị vô hiệu hoá chỉ đơn giản có nghĩa là bộ vi xử lý có thể và sẽ bỏ qua điều đó tín hiệu ngắt yêu cầu
Nếu một ngắt xảy ra trong thời gian này, nó thường vẫn chờ và sẽ được kiểm tra bởi bộ xử
lý sau khi xử lý đã cho phép ngắt
Vì vậy, khi một chương trình đang được thực hiện và một ngắt xảy ra, ngắt bị vô hiệu hóa ngay lập tức
Sau khi chương trình xử lý ngắt hoàn tất, ngắt được kích hoạt trước khi nối lại các chương trình sử dụng, và kiểm tra xử lý để xem nếu ngắt bổ sung đã xảy ra
Cách tiếp cận này là tốt đẹp và đơn giản, như ngắt được xử lý theo trình tự nghiêm ngặt
hình 3.1.3 a xử lý ngắt tuần tự
Một cách tiếp cận thứ hai là xác định các ưu tiên cho các ngắt
ngắt ưu tiên thấp có thể bị gián đoạn bởi các ngắt ưu tiên cao hơna
Khi ngắt ưu tiên cao hơn đã được xử lý, bộ xử lý trả về cho ngắt trước đó
hình 3.13 b xử lý ngắt lồng nhau
3.3 cấu trúc kết nối
Một máy tính bao gồm một tập hợp các thành phần hoặc các module của ba loại cơ bản (bộ xử
lý, bộ nhớ, I / O) mà giao tiếp với nhau Như vậy, có phải có con đường để kết nối các module
tập hợp các đường dẫn kết nối các module khác nhau được gọi là cấu trúc kết nối
Các thiết kế của cấu trúc này sẽ phụ thuộc vào sự trao đổi phải được thực hiện giữa các
mô-đun
Trang 19hình 3.15 Modules máy tính
Bộ nhớ:
Thông thường, một mô-đun bộ nhớ sẽ bao gồm N từ chiều dài bằng nhau
Mỗi từ được gán một địa chỉ số duy nhất (0, 1, , N -1)
Một từ dữ liệu có thể được đọc từ hay ghi vào bộ nhớ Bản chất của các hoạt động được chỉ định bởi tín hiệu điều khiển đọc và viết
Các vị trí cho các hoạt động được quy định bởi một địa chỉ
I / O module:
như một liên kết nội bộ (với hệ thống máy tính) , I / O có chức năng tương tự như bộ nhớ
Có hai hoạt động, đọc và viết
Hơn nữa, một I / O module có thể kiểm soát nhiều hơn một thiết bị bên ngoài
Chúng có thể tham khảo cho mỗi giao diện cho một thiết bị bên ngoài như một cổng và cung cấp cho mỗi một địa chỉ duy nhất (ví dụ: 0, 1, , M 1)
Ngoài ra, có là đường dẫn dữ liệu bên ngoài cho đầu vào và đầu ra của dữ liệu với một thiết
Cấu trúc kết nối phải hỗ trợ các dạng sau đây của chuyển:
Bộ nhớ để xử lý: Bộ xử lý đọc một lệnh hay một đơn vị dữ liệu từ bộ nhớ
Bộ vi xử lý với bộ nhớ: Bộ xử lý viết một đơn vị dữ liệu vào bộ nhớ
I / O cho xử lý: Bộ xử lý đọc dữ liệu từ một thiết bị I / O thông qua một module I / O
Bộ vi xử lý I / O: Bộ vi xử lý sẽ gửi dữ liệu đến I/ O thiết bị
I / O đến hoặc từ bộ nhớ: Đối với hai trường hợp này, một module I / O được phép trao đổi
dữ liệu trực tiếp với bộ nhớ, mà không qua bộ xử lý sử dụng truy cập bộ nhớ trực tiếp
Trang 20(DMA)
Qua nhiều năm, một số cấu trúc kết nối đã được thử nghiệm Bởi đến nay phổ biến nhất là bus
và các cấu trúc nhiều bus khác nhau
3.4 bus kết nối
Bus là một con đường truyền kết nối hai hoặc nhiều thiết bị
Một đặc điểm quan trọng của Bus là nó là một phương tiện truyền dẫn được chia sẻ
Nhiều thiết bị kết nối với Bus, và một tín hiệu truyền qua bất kỳ một thiết bị có sẵn để tiếp nhận bởi tất cả các thiết bị khác gắn liền với Bus
Nếu hai thiết bị truyền trong khoảng thời gian tương tự, tín hiệu của chúng sẽ chồng chéo lên nhau và trở thành bị cắt xén Như vậy, chỉ có một thiết bị trong một thời gian có thể truyền tải thành công
Thông thường, Bus bao gồm nhiều đường truyền, hoặc đường dây
Mỗi đường có khả năng truyền tín hiệu đại diện nhị phân 1 và nhị phân 0
Theo thời gian, một chuỗi các số nhị phân có thể được truyền trên một đường duy nhất
Tóm lại, một số đường dây của một bus đó có thể được sử dụng để truyền nhị phân số cùng một lúc (song song) Ví dụ, một đơn vị 8-bit dữ liệu có thể được truyền trên tám tuyến Bus
hệ thống máy tính có chứa một số bus khác nhau là con đường giữa các thành phần ở các cấp
độ khác nhau của hệ thống phân cấp hệ thống máy tính
Bus kết nối các thành phần máy tính lớn (bộ xử lý, bộ nhớ, I / O) được gọi là Bus hệ thống
Các cấu trúc máy tính kết nối phổ biến nhất dựa trên việc sử dụng một hoặc nhiều bus hệ thống
3.4.1 cấu trúc bus
Mặc dù có những mẫu thiết kế bus khác nhau, trên bất kỳ bus các đường có thể được phân loại thành ba nhóm chức năng (Hình 3.16): Dữ liệu, địa chỉ và đường điều khiển
Ngoài ra, có thể có đường dây phân phối điện năng cung cấp điện cho các mô-đun gắn liền
đường dây điện có thể không được hiển thị
hình 3.16 Lược đồ Kết nối Bus
các data lines- Data bus
Cung cấp đường dẫn cho việc di chuyển dữ liệu giữa các module hệ thống
Các đường dây, gọi chung được gọi là bus dữ liệu Các bus dữ liệu có thể bao gồm 32, 64,
128, hoặc thậm chí riêng biệt nhiều dòng, số dòng được gọi là độ rộng của bus dữ liệu
Bởi vì mỗi dòng có thể mang theo chỉ có 1 bit tại một thời gian, số lượng các dòng xác định có bao nhiêu bit có thể được chuyển giao tại một thời điểm
Chiều rộng của bus dữ liệu là một yếu tố quan trọng trong việc xác định hiệu suất hệ thống tổng thể
Trang 21 Ví dụ, nếu các bus dữ liệu rộng 32 bit và mỗi lệnh dài 64 bit, sau đó bộ xử lý phải truy cập vào module bộ nhớ hai lần trong mỗi chu kỳ lệnh
các Address lines – Address bus
Được sử dụng để chỉ nguồn và đích của dữ liệu trên bus dữ liệu
Ví dụ, nếu bộ xử lý muốn đọc một từ (8, 16, hoặc 32 bit) dữ liệu từ bộ nhớ, nó đặt địa chỉ của từ mong muốn trên dòng địa chỉ
Rõ ràng, độ rộng của bus địa chỉ xác định dung lượng bộ nhớ tối đa có thể của hệ thống
Hơn nữa, những dòng địa chỉ thường cũng được sử dụng để giải quyết các cổng I / O
Thông thường, các bit bậc cao được sử dụng để chọn một module cụ thể trên xe buýt, và các bit bậc thấp hơn chọn một vị trí bộ nhớ hoặc I / O port trong module
Ví dụ, trên một bus địa chỉ 8-bit,
địa chỉ 01111111 và dưới đây sẽ tham chiếu các các vị trí trong một mô-đun bộ nhớ (module 0) với 128 vị trí của bộ nhớ,
và giải quyết 10000000,và đề cập đến các thiết bị gắn liền với một I / O module (module 1)
các Control lines – Control bus
Được sử dụng để kiểm soát việc tiếp cận và sử dụng các dòng dữ liệu và địa chỉ
Bởi vì những dòng dữ liệu và địa chỉ được chia sẻ bởi tất cả các thành phầnthì phải có một phương tiện để kiểm soát việc sử dụng chúng
tín hiệu điều khiển truyền cả lệnh và thông tin thời gian giữa các module hệ thống
tín hiệu thời gian chỉ tính hiệu lực của dữ liệu và thông tin địa chỉ
Lệnh tín hiệu xác định các hoạt động được thực hiện
đường điều khiển điển hình bao gồmBộ nhớ ghi: Gây dữ liệu trên Bus để được ghi vào vị trí giải quyết
Bộ nhớ đọc: tạo dữ liệu từ vị trí giải quyết để được đặt trên bus
I / O viết: tạo dữ liệu trên bus cần đưa ra cho các cổng I / O gửi
I / O đọc: nhận dữ liệu từ I/ O port gửi đến được đặt trên bus
Chuyển ACK: Chỉ ra rằng dữ liệu đã được nhận hoặc đặt trên bus
Bus yêu cầu: Chỉ ra rằng một mô-đun cần phải giành quyền kiểm soát trên bus
Bus cấp: Chỉ ra rằng một module yêu cầu đã được cấp quyền kiểm soát trên bus
Ngắt yêu cầu: Chỉ ra một ngắt đang chờ
Ngắt ACK: thừa nhận rằng các gián đoạn cấp phát đã được công nhận
lock: Được sử dụng để đồng bộ hóa các hoạt động
Reset: Khởi tạo tất cả các module
Các hoạt động của bus là như sau
Nếu một module muốn gửi dữ liệu khác, nó phải làm hai việc:
(1) có được sử dụng bus
(2) chuyển dữ liệu thông qua các bus
Nếu một module muốn yêu cầu dữ liệu từ các phân hệ khác, nó phải
(1) có được sử dụng bus
(2) chuyển một yêu cầu đến các module khác trên điều khiển và địa chỉ đường thích hợp Sau đó nó phải đợi cho rằng mô-đun thứ hai để gửi dữ liệu
Về bản chất, bus hệ thống thực sự là một số dây dẫn điện song song
Trong sự sắp xếp bus cổ điển, các dây dẫn là đường dây kim loại được khắc trên một thẻ hoặc bảng (bảng mạch in)
Các bus mở rộng trên tất cả các thành phần hệ thống, mỗi trong số đó lẽ vào một số hoặc tất cả
Trang 22các tuyến bus -Hình 3.17
Các bus bao gồm hai cột dọc của dây dẫn
Đều đặn dọc theo cột, có những điểm đính kèm trong các hình thức của các khe đó mở rộng ra theo chiều ngang để hỗ trợ một bảng mạch in
hình 3.17 Việc xử lý điển hình của một Kiến trúc Bus
Tuy nhiên, hệ thống hiện đại có xu hướng cho có tất cả các thành phần chính trên cùng một boards với nhiều yếu tố trên cùng một chip như bộ vi xử lý
Hiện, bus trên chip có thể kết nối với bộ xử lý và bộ nhớ cache, trong khi một bus trên boards
có thể kết nối với bộ xử lý cho bộ nhớ chính và các thành phần khác
Sự sắp xếp này là thuận tiện nhất Một hệ thống máy tính nhỏ có thể bị thu hồi và sau đó mở rộng sau này (bộ nhớ nhiều hơn, nhiều I / O) bằng cách thêm board mạch
Nếu một thành phần trên board không thành, board dễ dàng có thể được loại bỏ và thay thế
3.4.2 Nhiều-Bus phân cấp
Nếu một số lượng lớn các thiết bị được kết nối với bus, hiệu suất sẽ gặp vấn đề Có hai nguyên nhân chính:
1 Nhìn chung, thêm thiết bị gắn vào các bus
Việc lớn hơn chiều dài bus và do đó càng chậm trễ đường truyền
Sự chậm trễ này xác định thời gian cần thiết cho các thiết bị cho phối hợp việc sử dụng bus
Khi điều khiển của bus đi từ một thiết bị khác thường, những sự chậm trễ đường truyền đáng kể có thể ảnh hưởng đến hiệu suất
2 Các bus có thể trở thành một nút cổ chai như là tổng hợp nhu cầu truyền dữ liệu tiếp cận năng lực của bus
Vấn đề này có thể được phản chừng mực nào đó bằng cách tăng tốc độ dữ liệu mà các bus đó có thể mang theo và sử dụng bus rộng hơn (ví dụ, tăng bus dữ liệu 32-64 bit)
Tuy nhiên, do tốc độ dữ liệu được tạo ra bởi các thiết bị kèm theo (ví dụ, đồ họa và điều khiển video, giao diện mạng) đang phát triển nhanh chóng, đây là một cuộc đua
mà một bus này về cơ bản là không thể phát triển theo kịp
Theo đó, hầu hết các hệ thống máy tính sử dụng nhiều bus, thường trình bày dưới dạng hệ thống phân cấp-Hình 3.18a
Trang 23hình 3.18a kiến trúc bus truyền thống
Có một bus địa phương kết nối các bộ vi xử lý với một bộ nhớ cache và có thể hỗ trợ một hoặc nhiều thiết bị địa phương
Bộ điều khiển bộ nhớ đệm kết nối bộ nhớ cache không chỉ để bus địa phương này, nhưng để một Bus hệ thống được đính kèm tất cả các mô-đun bộ nhớ chính
Việc sử dụng một cấu trúc bộ nhớ cache cách ly các bộ vi xử lý từ một yêu cầu để truy cập vào
bộ nhớ chính thường xuyên Do đó, bộ nhớ chính có thể được di chuyển ra khỏi bus địa
phương vào một Bus hệ thống
I / O chuyển đến và đi từ bộ nhớ chính trên bus hệ thống không can thiệp vào hoạt động của bộ
Sự sắp xếp này đôi khi được gọi là một kiến trúc tầng lửng - Hình 3.18b
hình 3.18b kiến trúc hiệu suất cao
Có một bus địa phương kết nối các bộ vi xử lý để điều khiển bộ nhớ cache, đó là lần lượt kết nối với một Bus hệ thống hỗ trợ bộ nhớ chính
Bộ điều khiển bộ nhớ cache được tích hợp vào một cầu nối, hoặc thiết bị đệm, kết nối với bus
Trang 24tốc độ cao
thiết bị tốc độ thấp vẫn được hỗ trợ ra khỏi bus mở rộng, với một giao diện đệm giữa các bus
mở rộng và các bus tốc độ cao
Ưu điểm của việc sắp xếp này là
Các bus tốc độ cao mang đến cho các thiết bị có nhu cầu cao và đồng bộ chặt chẽ hơn với
bộ vi xử lý và đồng thời là độc lập với các bộ vi xử lý Như vậy, sự khác biệt trong xử lý
và bus tốc độ cao là định nghĩa đường tín hiệu được thông thoáng
Những thay đổi trong kiến trúc vi xử lý không ảnh hưởng đến bus tốc độ cao, và ngược lại
3.4.3 Các yếu tố của thiết kế Bus
Mặc dù một nhiều triển khai bus khác nhau tồn tại, có một số thông số cơ bản hoặc các yếu tố thiết kế phục vụ để phân loại và phân biệt bus như sau
điều khiển phức tạp hơn
hiệu suất thấp hơn
PHƯƠNG PHÁP PHÂN CHIA
Các phương pháp khác nhau có thể được tạm phân loại như là một trong hai tập trung hay phân tán
Trong một chương trình tập trung
Một thiết bị phần cứng duy nhất, được gọi là một bộ điều khiển bus hoặc phân xử có trách nhiệm phân bổ thời gian trên bus
Thiết bị này có thể là một mô-đun riêng biệt hoặc một phần của bộ xử lý
Trong một chương trình phân phối
Không có bộ điều khiển trung tâm
Mỗi module chứa logic kiểm soát truy cập và các mô-đun cùng nhau hành động để
Trang 25hình 3.19 Thời gian áp dụng đồng bộ các hoạt động Bus
Với thời gian không đồng bộ, sự xuất hiện của một sự kiện trên Bus sau và phụ thuộc vào
sự xuất hiện của một sự kiện trước đó
thời gian đồng bộ là đơn giản để thực hiện và kiểm tra
Tuy nhiên, ít linh hoạt hơn so với thời gian không đồng bộ Bởi vì tất cả các thiết bị trên Bus đồng bộ được gắn với một tốc độ xung nhịp cố định, hệ thống không thể tận dụng lợi thế của những tiến bộ trong hiệu suất thiết bị
Với thời gian không đồng bộ, một hỗn hợp của các thiết bị chậm và nhanh chóng, sử dụng công nghệ cũ và mới hơn, có thể chia sẻ Bus
Trang 26hình 3.20 Thời gian áp dụng không đồng bộ các hoạt động Bus
ĐỘ RỘNG BUS
Chúng ta đã giải quyết các khái niệm về chiều rộng bus
Độ rộng của bus dữ liệu có ảnh hưởng đến hiệu năng hệ thống: Các bus dữ liệu rộng hơn, lớn hơn số bit chuyển cùng một lúc
Chiều rộng của bus địa chỉ có tác động về năng lực hệ thống: độrộng bus địa chỉ, lớn hơn phạm vi của vị trí có thể được tham chiếu
CÁC LOẠI CHUYỂN DỮ LIỆU
Bus hỗ trợ các loại truyền dữ liệu khác nhau
Trong trường hợp của một bus địa chỉ / dữ liệu ghép, các bus đầu tiên được sử dụng để xác định địa chỉ và sau đó để chuyển dữ liệu
Trong trường hợp của địa chỉ và dữ liệu bus chuyên dụng, địa chỉ được đặt trên bus địa chỉ
và vẫn ở đó trong khi các dữ liệu được đặt trên bus dữ liệu
Chapter 04
BỘ NHỚ CACHE NHỮNG ĐIỂM CHÍNH
Bộ nhớ máy tính được tổ chức thành một hệ thống phân cấp Ở cấp độ cao nhất (gần nhất để xử lý) là đăng ký xử lý Tiếp đến một hoặc nhiều cấp độ của bộ nhớ cache Khi nhiều cấp được sử dụng, chúng được ký hiệu là L1, L2 và cứ như vậy
Các hệ thống phân cấp tiếp tục với bộ nhớ bên ngoài, với các cấp độ tiếp theo thường là một đĩa cứng cố định, và một hoặc nhiều cấp độ dưới đây bao gồm các phương tiện di động như ổ đĩa quang và băng
Là một hệ thống phân cấp bộ nhớ đi xuống , là cách giảm chi phí / bit, dung lượng ngày càng tăng, và tăng tốc độ truy cập
Nếu bộ nhớ cache được thiết kế phù hợp, thì hầu hết thời gian xử lý sẽ yêu cầu từ bộ nhớ đã có trong bộ nhớ cache
Trang 274.1 Tổng quan Hệ thống bộ nhớ máy tính
4.1.1 Các đặc điểm của hệ thống bộ nhớ
hình 4.1 Đặc điểm chính của hệ thống bộ nhớ máy tính
Một đặc tính rõ ràng của bộ nhớ là dung lượng của nó Đối với bộ nhớ bên trong, điều này thường được biểu diễn dưới dạng byte (1 byte 8 bit) hoặc các từ
độ dài từ thường gặp là 8, 16 và 32 bit Dung lượng bộ nhớ bên ngoài thường được biểu diễn theo byte
Một khái niệm liên quan là các đơn vị truyền Đối với bộ nhớ bên trong, các đơn vị truyền tương đương với số lượng của dòng điện vào và ra khỏi các mô-đun bộ nhớ
Các đơn vị truyền có thể được tính bằng độ dài từ, nhưng thường là lớn hơn, chẳng hạn như 64,
128, hoặc 256 bit
Hãy xem xét ba khái niệm liên quan cho bộ nhớ trong:
Word: Các đơn vị "tự nhiên" của tổ chức của bộ nhớ Kích thước của từ này là thường bằng số bit được sử dụng để đại diện cho một số nguyên và với chiều dài chỉ dẫn
các đơn vị địa chỉ: Trong một số hệ thống, các đơn vị địa chỉ là từ Tuy nhiên, nhiều hệ thống cho phép giải quyết ở mức byte Trong mọi trường hợp, mối quan hệ giữa độ dài bằng bit A của một địa chỉ và số N của các đơn vị địa chỉ là 2A = N
Đơn vị truyền: Đối với bộ nhớ chính, đây là số bit được đọc hoặc ghi vào bộ nhớ tại một thời điểm
Một cách phân biệt giữa các loại bộ nhớ là phương pháp tiếp cận đơn vị dữ liệu Chúng bao gồm những điều sau đây:
truy cập tuần tự:
Bộ nhớ được tổ chức thành các đơn vị dữ liệu, gọi là bản ghi
Truy cập phải được thực hiện theo một trình tự tuyến tính cụ thể
Thời gian truy cập phụ thuộc vào vị trí của dữ liệu và vị trí trước
ví dụ như băng từ
Truy cập trực tiếp:
khối riêng lẻ có địa chỉ duy nhất
Trang 28 truy nhập bằng cách nhảy đến vùng lân cận cùng với tìm kiếm tuần tự
Thời gian truy cập phụ thuộc vào vị trí và vị trí trước
ví dụ như đĩa cứng
Truy cập ngẫu nhiên:
từng địa chỉ xác định địa điểm chính xác
truy cập định thời là độc lập với vị trí hoặc truy cập trước
ví dụ như RAM
liên kết:
Dữ liệu được xác định bằng cách so sánh với nội dung của một phần của các lưu trữ
Thời gian truy cập là độc lập với vị trí hoặc truy cập trước
ví dụ như bộ nhớ cache
Từ quan điểm của người sử dụng, hai đặc điểm quan trọng nhất của bộ nhớ là công suất và hiệu suất
Ba thông số hoạt động được sử dụng:
Thời gian truy cập:
Thời gian giữa thể hiện địa chỉ và nhận dữ liệu hợp lệ
định thời chu kỳ bộ nhớ:
định thời có thể được yêu cầu cho bộ nhớ để "phục hồi" trước khi truy cập tiếp theo
định thời chu kỳ là truy cập + phục hồi
Một hệ thống phân cấp điển hình được minh họa trong hình 4.1 Là một phân cấp đi
xuống ,như sau :
a giảm giá vốn cho mỗi bit
b công suất tăng
c Tăng tốc độ truy cập
d Giảm tần suất truy cập của bộ nhớ bằng bộ vi xử lý
Trang 29hình 4.1 Phân Cấp Bộ nhớ
4.2 Nguyên tắc của bộ nhớ Cache
Khái niệm này được minh họa trong hình 4.3
Có một bộ nhớ chính tương đối lớn và chậm cùng với một bộ nhớ cache nhỏ hơn, nhanh hơn
Các bộ nhớ cache chứa một bản sao của các phần của bộ nhớ chính Khi bộ xử lý cố gắng để đọc một từ bộ nhớ, kiểm tra được thực hiện để xác định xem từ đó có trong bộ nhớ cache
Nếu vậy, từ này được chuyển giao cho các bộ xử lý
Nếu không, một khối của bộ nhớ chính, bao gồm một số số cố định của các từ, được đọc vào bộ nhớ cache và sau đó từ này được chuyển giao cho các bộ vi xử lý
hình 4.3 Bộ nhớ cache và bộ nhớ chính
Trang 30hình 4.4 cấu trúc cache/bộ nhớ chính
Bộ nhớ chính chứa lên đến 2n từ địa chỉ, với mỗi từ có một địa chỉ n-bit duy nhất
Đối với mục đích ánh xạ, bộ nhớ này được coi là chứa một số khối chiều dài cố định các từ K
(2) bởi vì một dòng bộ nhớ cache không chỉ bao gồm K từ dữ liệu, giống như một khối
bộ nhớ chính, mà còn bao gồm thẻ và kiểm soát bit
Độ dài của một dòng, không bao gồm thẻ và kiểm soát bit, là kích thước dòng
Số lượng các dòng thấp hơn đáng kể so với số lượng các khối bộ nhớ chính (m <M)
Bất cứ lúc nào, một số nhóm nhỏ các khối của bộ nhớ nằm trong dòng trong bộ nhớ cache
Nếu một từ trong một khối bộ nhớ được đọc, khối đó được chuyển giao cho một trong những dòng của bộ nhớ cache
Bởi vì có khối nhiều hơn dòng, một dòng đơn không thể là duy nhất và vĩnh viễn dành riêng cho một khối cụ thể
Như vậy, mỗi dòng bao gồm một thẻ nhận dạng mà đặc biệt là khối hiện đang được lưu trữ Thẻ thường là một phần của địa chỉ bộ nhớ chính
hoạt động bộ nhớ cache
CPU yêu cầu nội dung của vị trí bộ nhớ
Kiểm tra dữ liệu bộ nhớ cache
Nếu có, nhận từ bộ nhớ cache (nhanh)
Nếu không có, đọc khối yêu cầu từ bộ nhớ chính ra bộ nhớ cache
Sau đó cung cấp từ bộ nhớ cache vào CPU
Bộ nhớ cache bao gồm các thẻ để xác định khối của bộ nhớ chính có trong mỗi khe cắm bộ nhớ cache
Trang 31 Hình 4.5 minh họa các hoạt động đọc Bộ vi xử lý tạo ra các địa chỉ đọc (RA) của một từ được đọc
hình 4.5 hoạt động đọc của cache
hình 4.6 Tổ chức bộ nhớ cache tiêu biểu
Hình 4.6, mà là điển hình của các tổ chức bộ nhớ cache đương đại
Các bộ nhớ cache kết nối với bộ xử lý thông qua dữ liệu, kiểm soát, và dòng địa chỉ
Các dòng dữ liệu và địa chỉ cũng đính kèm vào dữ liệu và bộ đệm địa chỉ, mà gắn vào một Bus hệ thống từ đó truền ra bộ nhớ chính
Khi truy cập bộ nhớ cache xảy ra, dữ liệu và bộ đệm địa chỉ bị vô hiệu hóa và đường truyền là duy nhất giữa bộ xử lý và bộ nhớ cache, không có đường truyền bus hệ thống
Khi không có Cache, địa chỉ muốn được nạp vào bus hệ thống và các dữ liệu được trả về thông qua bộ đệm dữ liệu cho cả bộ nhớ cache và bộ xử lý
Trang 324.3 Các yếu tố Thiết kế của Cache
Mặc dù có một số lượng lớn các hiện thực bộ nhớ cache, có một vài yếu tố thiết kế cơ bản phục
vụ để phân loại và phân biệt kiến trúc bộ nhớ cache
4.3.1 Cache Addresses
Hầu như tất cả các bộ xử lý không nhúng, và nhiều bộ xử lý nhúng, đều hỗ trợ bộ nhớ ảo
Về bản chất, bộ nhớ ảo là một cơ sở cho phép các chương trình để giải quyết nhớ từ một điểm hợp lý, mà không quan tâm đến số lượng bộ nhớ chính có sẵn
Khi bộ nhớ ảo được sử dụng, các trường địa chỉ của lệnh máy chứa địa chỉ ảo
Đối với lần đọc đến và ghi từ bộ nhớ chính, đơn vị quản lý bộ nhớ phần cứng (MMU) dịch mỗi địa chỉ ảo thành địa chỉ vật lý trong bộ nhớ chính
Khi các địa chỉ ảo được sử dụng, các nhà thiết kế hệ thống có thể chọn để đặt các bộ nhớ cache như hình 4.7
Giữa các bộ xử lý và các MMU
Hoặc giữa các MMU và bộ nhớ chính
Một bộ nhớ cache logic, cũng được biết đến như một bộ nhớ cache ảo, lưu trữ dữ liệu sử dụng các địa chỉ ảo
Bộ vi xử lý truy cập bộ nhớ cache trực tiếp, không qua MMU
Một cửa hàng vật lý bộ nhớ cache dữ liệu sử dụng địa chỉ vật lý bộ nhớ chính