kiến trúc máy tính Vũ Đức Lung phần 10 pps

20 565 2
kiến trúc máy tính Vũ Đức Lung phần 10 pps

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương VII: Tổ chức Bộ xử lý 242 Khi bộ phận phần cứng nêu trên phát hiện có dùng kết quả của ALU làm toán hạng cho liệt kê, nó tác ñộng vào mạch ña hợp ñể ñưa ngã ra của ALU vào ngã vào của ALU hoặc vào ngã vào của một ñơn vị chức năng khác nếu cần. c. Khó khăn do ñiều khiển: Trong một số trường hợp, các lệnh làm thay ñổi tính thi hành các lệnh một cách tuần tự (nghĩa là thay vì PC tăng ñều ñặn sau mỗi lệnh thì ñột xuất nó tăng hoặc giảm mạnh hơn), gây khó khăn về ñiều khiển. Các lệnh này là lệnh nhảy ñến một ñịa chỉ tuyệt ñối chứa trong một thanh ghi, hay lệnh nhảy ñến một ñịa chỉ xác ñịnh một cách tương ñối so với ñịa chỉ hiện tại của bộ ñếm chương trình PC. Các lệnh nhảy trên có thể có hoặc không ñiều kiện. Trong trường hợp ñơn giản nhất, tác vụ nhảy không thể biết trước giai ñoạn giải mã. Như vậy, nếu lệnh nhảy bắt ñầu ở chu kỳ C thì lệnh mà chương trình nhảy tới chỉ ñược bắt ñầu ở chu kỳ C+2. Ngoài ra, phải biết ñịa chỉ cần nhảy ñến mà ta có ở cuối giai ñoạn giải mã ID. Trong lệnh nhảy tương ñối, ta phải cộng ñộ dời chứa trong thanh ghi lệnh IR vào thanh ghi PC. Việc tính ñịa chỉ này chỉ ñược thực hiện vào giai ñoạn ID với ñiều kiện phải có một mạch công việc riêng biệt. Vậy trong trường hợp lệnh nhảy không ñiều kiện, lệnh mà chương trình nhảy ñến bắt ñầu thực hiện ở chu kỳ C+2 nếu lệnh nhảy bắt ñầu ở chu kỳ C. Cho các lệnh nhảy có ñiều kiện thì phải tính toán ñiều kiện. Thông thường các kiến trúc RISC ñặt kết quả việc so sánh vào trong thanh ghi trạng thái, hoặc vào trong thanh ghi tổng quát. Trong cả 2 trường hợp, ñọc ñiều kiện tương ñương với ñọc thanh ghi. ðọc thanh ghi có thể ñược thực hiện trong phân nửa chu kỳ cuối giai ñoạn ID. Chương VII: Tổ chức Bộ xử lý 243 Một trường hợp khó hơn có thể xảy ra trong những lệnh nhảy có ñiều kiện. ðó là ñiều kiện ñược có khi so sánh 2 thanh ghi và chỉ thực hiện lệnh nhảy khi kết quả so sánh là ñúng. Việc tính toán trên các ñại lượng logic không thể thực hiện ñược trong phân nửa chu kỳ và như thế phải kéo dài thời gian thực hiện lệnh nhảy có ñiều kiện. Người ta thường tránh các trường hợp này ñể không làm giảm mức hữu hiệu của máy tính. Vậy trường hợp ñơn giản, người ta có thể ñược ñịa chỉ cần nhảy ñến và ñiều kiện nhảy cuối giai ñoạn ID. Vậy có chậm ñi một chu kỳ mà người ta có thể giải quyết bằng nhiều cách. Cách thứ nhất là ñóng băng kỹ thuật ống dẫn trong một chu kỳ, nghĩa là ngưng thi hành lệnh thứ i+1 ñang làm nếu lệnh thư i là lệnh nhảy. Ta mất trắng một chu kỳ cho mỗi lệnh nhảy. Cách thứ hai là thi hành lệnh sau lệnh nhảy nhưng lưu ý rằng hiệu quả của một lệnh nhảy bị chậm mất một lệnh. Vậy lệnh theo sau lệnh nhảy ñược thực hiện trước khi lệnh mà chương trình phải nhảy tới ñược thực hiện. Chương trình dịch hay người lập trình có nhiệm vụ xen vào một lệnh hữu ích sau lệnh nhảy. Trong lập trình thường xảy ra trường hợp chúng ta so sánh một ñiều kiện nào ñó và việc nhảy có thể ñược thực hiện hay không thực hiện phụ thuộc vào ñiều kiện ñó. Người ta gọi lệnh hữu ích ñặt sau lệnh nhảy không làm sai lệch chương trình dù ñiều kiện nhảy ñúng hay sai. Hầu hết các bộ xử lý RISC có những lệnh nhảy với khả năng huỷ bỏ. Các lệnh này cho phép thi hành lệnh sau lệnh nhảy nếu ñiều kiện nhảy ñúng và huỷ bỏ thực hiện lệnh ñó nếu ñiều kiện nhảy sai giống như trong câu lệnh if (ñiều kiện ñúng) GOTO ñịa chỉ else thực hiện lệnh ngay sau dòng if. Chương VII: Tổ chức Bộ xử lý 244 CÂU HỎI VÀ BÀI TẬP CHƯƠNG VII 1. Liệt kê các thành phần và nhiệm vụ của CPU? 2. Mô tả tổ chức một máy tính ñơn giản và hoạt ñộng của các bộ phận chính trong CPU 3. Nhiệm vụ của bộ ñiều khiển và các loại bộ ñiều khiển? 4. Bộ thanh ghi gồm các loại nào? Trong họ 80x86, hãy nêu các thanh ghi và các ñặc tính tương ứng của mỗi loại. 5. Các loại ñường ñi của dữ liệu và các ưu, nhược ñiểm của mỗi loại? 6. Việc thi hành lệnh mã máy ñược thực thi ra sao? giải thích việc thực thi ñoạn chương trình sau: MOV R4, #24 ADD R4, (R1) 7. Thế nào là ngắt quãng? Các giai ñoạn thực hiện ngắt quãng của CPU. 8. Vẽ hình ñể mô tả kỹ thuật ống dẫn. Kỹ thuật ống dẫn làm tăng tốc ñộ CPU lên bao nhiêu lần (theo lý thuyết)? Tại sao trên thực tế sự gia tăng này lại ít hơn? 9. Các ñiều kiện mà một CPU cần phải có ñể tối ưu hoá kỹ thuật ống dẫn. Giải thích từng ñiều kiện. 10. Các khó khăn trong kỹ thuật ống dẫn và cách giải quyết khó khăn này. Chương VIII: Hệ thống bộ nhớ 245 CHƯƠNG VIII: HỆ THỐNG BỘ NHỚ Trong chương này sẽ giới thiệu về các chức năng và nguyên lý hoạt ñộng của hệ thống bộ nhớ máy tính như bộ nhớ cache, bộ nhớ trong, bộ nhớ thứ cấp và bộ nhớ ảo. Bộ nhớ máy tính ñược tổ chức thành một hệ thống gọi là các cấp bộ nhớ, trong ñó các bộ nhớ lớn hơn, chậm hơn và rẻ tiền hơn sẽ ñược kết hợp với các bộ nhớ nhỏ hơn, nhưng nhanh hơn và ñắt tiền hơn ñể tạo thành một hệ thống bộ nhớ có tốc ñộ và giá cả phù hợp nhất. 8.1. CÁC CẤP BỘ NHỚ (Memory Hierarchy) Người ta chia bộ nhớ thành các cấp dựa vào các ñặc tính như lượng thông tin lưu trữ, thời gian thâm nhập bộ nhớ, chu kỳ bộ nhớ, giá tiền mỗi bit nhớ. Các cấp bộ nhớ bắt ñầu từ bộ nhớ nhanh với dung lượng ít ñến các bộ nhớ chậm với dung lượng lớn hơn nhiều. Các cấp bộ nhớ giúp cho người lập trình có ñược một bộ nhớ thật nhanh với chi phí ñầu tư thấp hơn nhiều. Vì các bộ nhớ nhanh, có dung lượng ít thì ñắt tiền hơn các bộ nhớ có dung lượng cao hơn, nhưng chậm hơn. Do ñó mục tiêu của việc thiết lập các cấp bộ nhớ là người dùng có ñược một hệ thống bộ nhớ rẻ tiền như cấp bộ nhớ thấp nhất và gần nhanh như cấp bộ nhớ cao nhất. Các cấp bộ nhớ thường ñược lồng vào nhau. Mọi dữ liệu trong một cấp thì ñược gặp lại trong cấp thấp hơn và có thể tiếp tục gặp lại trong cấp thấp nhất. Chúng ta có nhận xét rằng, mỗi cấp bộ nhớ có dung lượng lớn hơn cấp trên mình, ánh xạ một phần ñịa chỉ các ô nhớ của mình vào ñịa chỉ ô nhớ của cấp trên trực tiếp có tốc ñộ nhanh hơn, và các cấp bộ nhớ phải có cơ chế quản lý và kiểm tra các ñịa chỉ ánh xạ. Các cấp bộ nhớ ñược phân loại như trên hình 8.1 bắt ñầu với bộ nhớ nhỏ, ñắt tiền và nhanh gọi là cache. Tiếp sau ñó là bộ nhớ lớn hơn, rẻ hơn và chậm hơn gọi là bộ nhớ chính hay bộ nhớ Chương VIII: Hệ thống bộ nhớ 246 trong (main memory). Bộ nhớ cache và bộ nhớ chính ñược chế tạo sử dụng chất bán dẫn rắn ( ñiển hình là CMOS transistors). Tiếp theo sau ñó là các bộ nhớ có dung lượng lớn hơn, chậm hơn và rẻ tiền hơn mà tiêu biểu là ñĩa cứng, ñĩa mềm, các loại CD, DVD, băng từ,… Hiệu quả của việc phân thành các cấp bộ nhớ phụ thuộc vào nguyên lý chuyển ñổi thông tin trong các bộ nhớ nhanh. Hiệu quả càng cao khi thông tin trong ñó càng ít khi bị thay ñổi và việc truy cập vào thông tin trong ñó càng nhiều lần càng tốt trước khi nó bị thay thế bởi thông tin mới. ðể ñánh giá hiệu quả của hệ thống các cấp bộ nhớ, chúng ta sẽ xem xét trường hợp dưới ñây. Khi bộ vi xử lý (VXL) gửi một yêu cầu truy cập ñến một từ nhớ hay một câu lệnh, máy tính sẽ thực thi tìm kiếm từ nhớ theo một thứ tự như sau: – Tìm từ nhớ trong bộ nhớ mức cao nhất (thông thường gọi là cache) của các cấp bộ nhớ. Xác suất tìm thấy từ nhớ trong ñó gọi là tỷ số thành công (hit ratio) h 1 , không tìm thấy là tỷ số thất bại (miss ratio) (1-h 1 ); – Khi không tìm thấy từ nhớ trong bước một thì tìm ở cấp bộ nhớ thấp hơn thấp hơn (như cache L2, main memory). Tương tự như trên ta sẽ có các tỷ số h 2 và (1-h 2 ); Các thanh ghi B ộ nhớ Cache Bộ nhớ chính (Main memory) Bộ nhớ thứ cấp – ðĩa Secondary Storage (Disk) Bộ nhớ cấp ba - Băng từ Tertiary Storage (Tape) Nhanh hơn ðắt hơn Dung lư ợng bộ nhớ nhỏ h ơn M ức cao M ức thấp Hình 8.1. Các c ấp bộ nhớ c ơ b ản Chương VIII: Hệ thống bộ nhớ 247 – Quá trình này sẽ tiếp diễn cho ñến khi tìm thấy từ nhớ cần thiết hoặc hết cấp bộ nhớ. – Khi tìm thấy từ nhớ sẽ ñược chuyển cho Bộ xử lý và cập nhật lại dữ liệu trong các cấp bộ nhớ nếu cần thiết. Giả sử các cấp bộ nhớ có 3 cấp. Thời gian truy cập vào các cấp bộ nhớ trung bình, hay thời gian trung bình ñể tìm thấy một từ nhớ ñược tính thao công thức sau: t av = h 1 *t 1 + (1-h 1 )*[t 1 +h 2 *t 2 +(1-h 2 )*(t 2 +t 3 )] = t 1 + (1-h 1 )*[t 2 + (1-h 2 )*t 3 ] Trong ñó: - h i là tỷ số thành công khi tìm thấy từ nhớ cần thiết trong mức bộ nhớ cấp i. - t i là thời gian truy cập cần thiết vào bộ nhớ cấp i. Theo [6] thì một chương trình tiêu tốn 90% thời gian thi hành của nó chỉ ñể thực hiện 10% số lệnh của chương trình (thường là những lệnh nằm trong các vòng lặp, ñược thực thi nhiều lần). Như vậy 90% số lệnh còn lại chỉ tiêu tốn 10% thời gian thực thi hay nói cách khác chúng hoặc là không ñược thực thi (Ví dụ các lệnh xử lý lỗi chỉ ñược thực thi khi phát sinh lỗi) hoặc là chỉ ñược thực thi một số ít lần. Nguyên tắc trên cũng ñược áp dụng cho việc thâm nhập dữ liệu, nhưng ít hiệu nghiệm hơn việc thâm nhập lệnh. Như vậy có hai nguyên tắc: nguyên tắc về không gian và nguyên tắc về thời gian • Nguyên tắc về không gian: Khi bộ xử lý thâm nhập vào ô nhớ nào ñó thì có nhiều khả năng sẽ thâm nhập vào những ô nhớ có ñịa chỉ kế tiếp trong thời gian sau ñó do các lệnh ñược sắp xếp thành chuỗi có thứ tự. Ví dụ danh sách các lệnh nằm liên tiếp nhau trong một chương trình. Chương VIII: Hệ thống bộ nhớ 248 • Nguyên tắc về thời gian: Các ô nhớ ñược hệ thống xử lý thâm nhập có khả năng sẽ ñược thâm nhập lại trong tương lai gần. Thật vậy, các chương trình ñược cấu tạo với phần chính là phần ñược thi hành nhiều nhất và các phần phụ dùng ñể xử lý các trường hợp ngoại lệ. Còn số liệu luôn có cấu trúc và thông thường chỉ có một phần số liệu ñược thâm nhập nhiều nhất mà thôi. Ví dụ như một lệnh trong một vòng lặp của chương trình. Như vậy, chúng ta cần tổ chức các cấp bộ nhớ sao cho các lệnh và dữ liệu thường dùng ñược nằm trong bộ nhớ cache và việc ổ chức như vậy sẽ làm tăng hiệu quả cũng như tốc ñộ chung của máy tính lên một cách ñáng kể. 8.2. BỘ NHỚ CACHE (Cache memory) Cache là một bộ nhớ tốc ñộ cao nằm gần CPU. Ý tưởng là dùng bộ nhớ cache ở mức ñầu tiên của các cấp bộ nhớ ñể lưu trữ các thông tin mà CPU thường xuyên sử dụng. Kết quả là trong bất kỳ thời gian nào cũng có một phần ñang vận hành của bộ nhớ trong (hay bộ nhớ chính – main memory) ñược nhân bản lại trong bộ nhớ cache. ðể cho chương trình vận hành nhanh hơn thì cache phải chứa một phần con của bộ nhớ trong ñể bộ xử lý có thể thâm nhập vào các lệnh hoặc dữ liệu thường dùng từ bộ nhớ cache. Do dung lượng của bộ nhớ cache nhỏ nên nó chỉ chứa một phần chương trình nằm trong bộ nhớ trong. Khi bộ VXL yêu cầu ñọc một bộ nhớ liên quan thì ñầu tiên yều cầu này ñược tìm trong cache. Nếu như yều cầu tương ứng với một phần tử nằm trong cache thì ta gọi trường hợp này là thành công cache (cache hit). Trường hợp không tìm thấy phần tử yêu cầu trong cache thì ta gọi là thất bại cache (cache miss). Tỷ số thành công cache h c (cache hit ratio) ñược ñịnh nghĩa là xác suất tìm thấy phần tử yều cầu trong cache. Tỷ số thất bại cache (1-h c ) (cache miss ratio) là xác suất không tìm thấy phần tử yêu cầu trong cache. ðể ñảm bảo sự ñồng nhất giữa nội dung của cache và bộ nhớ trong thì cache và bộ nhớ trong phải có cùng cấu trúc. Việc Chương VIII: Hệ thống bộ nhớ 249 chuyển dữ liệu giữa cache và bộ nhớ trong là việc tải lên hay ghi xuống các khối dữ liệu. Mỗi khối chứa nhiều từ bộ nhớ tuỳ thuộc vào cấu trúc bộ nhớ cache. Sự lựa chọn kích thước của khối rất quan trọng cho vận hành của cache có hiệu quả. Việc trao ñổi dữ liệu giữa CPU, cache và bộ nhớ trong ñược thực thi như hình 8.2. ðể ñánh giá sự ảnh hưởng của hai nguyên lý không gian và thời gian vào tốc ñộ truy cập vào bộ nhớ của máy tính, chúng ta giả sử rằng thời gian truy cập vào bộ nhớ trong là t m và thời gian truy cập vào cache là t c . Giả sử hệ thống các cấp bộ nhớ có hai mức và ta sẽ khảo sát thời gian truy cập trung bình t av ñến một từ nhớ trong mô hình này trong các nguyên lý không gian và thời gian Ảnh hưởng của nguyên lý lân cận thời gian Trong trường hợp này chúng ta giả sử những lệnh trong vòng lặp của một chương trình ñược chạy nhiều lần và giả sử là n lần. Một lần ñược tải vào bộ nhớ cache và ñược sử dụng nhiều lần trước khi bị thay thế bởi các lệnh mới. Như vậy thời gian truy cập trung bình t av ñược tính bởi công thức sau: c m m av c nt t t t t n n + = = + Từ công thức trên ta thấy n càng tăng thì thời gian truy cập trung bình càng giảm và như vậy hiệu quả của việc sử dụng cache càng cao. Ảnh hưởng của nguyên lý lân cận không gian CPU Cache Main Memory Chuyển theo từ Chuyển theo khối Hình 8.2. Sơ ñồ chuyển dữ liệu giữa CPU-Cache-Main memory Chương VIII: Hệ thống bộ nhớ 250 Trong trường hợp này giả sử kích thước của một khối ñược chuyển tử bộ nhớ trong vào cache khi thất bại cache là m phần tử. Ta cũng giả sử rằng trong lân cận không gian này thì tất cả m phần tử ñều ñược yêu cầu bởi bộ VXL một lần. Trên cơ sở những giả thiết ñó ta có thời gian truy cập trung bình ñược tính bởi công thức: c m m av c mt t t t t m m + = = + Trong công thức rõ ràng là khi số phần tử trong khối ñược tăng lên thì thời gian trung bình sẽ giảm ñi, ñiều ñó cũng tương ñương với việc càng nhiều phần tử nằm trong cache thì càng tốt. Ảnh hưởng của tổng hợp hai nguyên lý lân cận không gian và thời gian Trong trường hợp này giả sử phần tử ñược yêu cầu bởi bộ VXL không có trong cache hay cache miss và cần phải chuyển một khối có chứa m phần tử vào trong cache (việc làm này mất một thời gian là t m ). Ta cũng giả sử rằng trong lân cận không gian này thì tất cả m phần tử ñều ñược yêu cầu bởi bộ VXL một lần (mt c ). Ngoài ra sau ñó bộ VXL còn yều cầu phần tử này thêm (n-1) lần nữa (lân cận thời gian) hay tổng số lần truy cập ñến phần tử này là n lần. Trên cơ sở những giả thiết ñó ta có thời gian truy cập trung bình ñược tính bởi công thức: ( ) ( 1) ( 1) c m m c c c m av c mt t t n t t n t t m m t t n n nm + + − + + − = = = + Trong công thức trên rõ ràng là khi số phần tử trong khối hoặc số lần truy cập ñến phần tử ñược tăng lên thì thời gian trung bình sẽ giảm ñi và có thể tiến tới giá trị t c . ðiều ñó cũng tương ñương với việc càng nhiều phần tử nằm trong cache thì càng tốt và số lần truy cập ñến phần tử nằm trong cache càng nhiều thì càng tốt. Qua các thảo luận ở trên ta biết rằng càng có nhiều yêu cầu truy cập ñến từ nhớ không nằm trong cache thì càng cần chuyển Chương VIII: Hệ thống bộ nhớ 251 nhiều khối bộ nhớ từ bộ nhớ trong vào cache. Vấn ñề là bộ nhớ cache thì có giới hạn nên việc vận chuyển các khối nhớ phải giải quyết ñược bốn câu hỏi cơ bản là: Phải ñể một khối bộ nhớ vào chỗ nào của cache hay cách sắp xếp khối nhớ trong cache như thế nào? Làm sao ñể tìm một từ nhớ trong khối nhớ khi khối này ñang nằm trong cache ? Trong trường hợp không tìm thấy khối nhớ cần thiết trong cache và cache ñã ñầy thì khối nào phải ñược ñẩy ra khỏi cache ñể thay thế khối mới? và câu hỏi cuối cùng là việc gì sẽ xảy ra khi ghi khối nhớ từ cache ngược lại vào bộ nhớ? ðể trả lời cho các câu hỏi này ta phải xem cách tổ chức và vận hành của cache và nội dung này sẽ ñược trình bày trong phần sau. 8.2.1. TỔ CHỨC BỘ NHỚ CACHE ðể hiểu rõ sự vận hành và tổ chức bộ nhớ cache, trước hết chúng ta sẽ xem xét chức năng ánh xạ hay tương ứng ñịa chỉ giữa các cấp bộ nhớ. Trong phần này ñể ñơn giản hóa vấn ñề ta xét các cấp bộ nhớ có hai mức, mức một là bộ nhớ cache và mức hai là bộ nhớ trong (main memory). Nguyên lý ứng dụng cho giao tiếp giữa các cấp bộ nhớ sẽ giống với trường hợp mà ta xem xét ở ñây. Yêu cầu truy cập tới một phần tử hay một từ nhớ ñược phát ra bởi bộ VXL và phần tử này có thể hiện tại ñang nằm trong bộ nhớ cache trong trường hợp cache hit, nhưng cũng có thể tương ứng với một phần từ mà hiện tại nó không nằm trong cache (cache miss) mà nằm trong bộ nhớ trong. Do ñó cần phải xác ñịnh ñịa chỉ của phần tử cần truy cập ñể xác ñịnh nó nằm ở ñâu. Việc xác ñịnh này ñược một ñơn vị chức năng trong CPU giải quyết và ta gọi là ñơn vị quản lý bộ nhớ (memory management unit - MMU). Sơ ñồ khối của chức năng ánh xạ ñịa chỉ như trong hình 8.3. Như trên hình này, ñịa chỉ ñược phát ra bởi bộ VXL sẽ ñược MMU chuyển ñổi thành một dạng ñịa chỉ tương ứng và nếu ñịa chỉ này ñược xác ñịnh là nằm trong cache thì từ nhớ cần truy cập sẽ ñược trả về cho bộ VXL. Trong trường hợp ñịa chỉ của từ nhớ cần truy cập không nằm trong cache, mà nằm trong bộ nhớ trong thì khối bộ nhớ có chứa từ này sẽ ñược chuyển vào trong Chương VIII: Hệ thống bộ nhớ 252 cache dưới dạng một khối bộ nhớ và sau ñó thì từ nhớ này mới sẵn sàng cho bộ VXL. Có ba kỹ thuật tổ chức bộ nhớ cache là: kiểu tương ứng trực tiếp (Direct Mapping), kiểu hoàn toàn phối hợp (Fully Associative Mapping) và kiểu phối hợp theo tập hợp (Set – Associative Mapping). Các kỹ thuật này dựa trên hai khía cạnh chính: – Cách ñặt vào cache một khối nhớ từ bộ nhớ trong – Cách thay thế một khối cache (khi cache ñầy). Sau ñây ta sẽ xem xét lần lượt từng kỹ thuật này một cách tỉ mỉ. 8.2.1.1. Kiểu tương ứng trực tiếp (Direct mapping) ðây là kỹ thuật ñơn giản nhất trong ba kỹ thuật nêu trên. Theo kỹ thuật này thì mỗi khối bộ nhớ chỉ có một vị trí ñặt khối duy nhất trong cache ñược xác ñịnh theo công thức: mod j i N = Trong ñó: j: vị trí khối ñặt trong cache i: số thứ tự của khối trong bộ nhớ trong N: số khối của cache MMU Translation function Main Memory Cache ðịa chỉ cần truy cập Từ nhớ yêu cầu Khối nhớ miss ðịa chỉ trong cache hit Hình 8.3. Sơ ñồ ánh xạ ñịa chỉ Chương VIII: Hệ thống bộ nhớ 253 Ví dụ 1: Giả sử máy tính có bộ nhớ trong có 32 khối, cache có 8 khối, mỗi khối gồm 32 byte, khối thứ 12 của bộ nhớ trong ñược ñưa vào cache. Như vậy theo công thức trên thì khối nhớ thứ 12 sẽ ñược ñưa vào cache ở vị trí: j = 12 mod 8 = 4 Ví dụ này ñược minh họa trong hình 8.4 a). Như vậy, trong kiểu xếp ñặt khối này, mỗi vị trí ñặt khối trong cache có thể chứa một trong các khối trong bộ nhớ cách nhau 8 khối. ðể nhận diện một khối có nằm trong cache hay không, mỗi khối của cache ñều có một nhãn ñịa chỉ cho biết số thứ tự của các khối bộ nhớ trong ñang hiện diện trong cache. Nhãn của một khối bộ nhớ cache chứa ñựng thông tin cần thiết ñể biết ñược khối ñó có nằm trong cache hay không và có chứa thông tin mà bộ xử lý cần Số thứ tự khối 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 …… 3 0 1 2 3 4 …… 1 Main memory Cache Số thứ tự khối 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 a) Tương ứng trực tiếp b) Hoàn toàn phối hợp c) Theo tập hợp TH0 TH1 TH2 TH3 Hình 8.4. Các kỹ thuật xếp ñặt khối nhớ trong cache Chương VIII: Hệ thống bộ nhớ 254 ñọc hay không. Tất cả các nhãn ñều ñược xem xét song song (trong kiểu tương ứng trực tiếp và phối hợp theo tập hợp) do ñó tốc ñộ tìm kiếm sẽ rất cao. ðể biết xem một khối của của cache có chứa thông tin mà bộ xử lý cần tìm hay không, người ta thêm một bit ñánh dấu (valid bit) vào nhãn ñể nói lên khối ñó có chứa thông tin mà bộ xử lý cần tìm hay không. Như ñã ñề cập ở trên, với thao tác ñọc (ghi) bộ nhớ, bộ xử lý ñưa ra một ñịa chỉ và nhận (viết vào) một dữ liệu từ (vào) bộ nhớ trong. ðịa chỉ mà bộ xử lý ñưa ra có thể phân tích thành hai thành phần: phần nhận dạng số thứ tự khối và phần xác ñịnh vị trí từ cần ñọc trong khối. Tương ứng với ba kiểu lắp ñặt khối ñã xét, ta có: • Căn cứ vào số từ trong một khối bộ nhớ mà số bit trong trường ñịa chỉ sẽ xác ñịnh vị trí từ cần ñọc trong khối. Trường hip75 này cũng giống như việc xác ñịnh ñịa chỉ tương ñối trong bộ nhớ. Cách tính này ñúng với cả ba cách xếp ñặt khối ñã xét. • Phần nhận dạng số thứ tự khối sẽ khác nhau tuỳ thuộc vào cách xếp ñặt khối, trường chỉ số khối ñược so sánh với nhãn của cache ñể xác ñịnh khối trong cache. Dữ liệu ñược bộ xử lý ñọc cùng lúc với việc ñọc nhãn. Phần chỉ số khối của khối trong bộ nhớ trong ñược so sánh với bảng tương quan ñể xác ñịnh khối có nằm trong cache hay không. ðể chắc rằng nhãn chứa thông tin ñúng ñắn (tức là khối có chứa từ mà bộ xử lý cần ñọc-ghi), nếu việc so sánh nhãn của khối cache giống với số thứ tự khối, bit ñánh dấu (Valid bit) phải ñược bật lên. Ngược lại, kết quả so sánh ñược bỏ qua. Bộ xử lý căn cứ vào phần xác ñịnh từ trong khối ñể ñọc (ghi) dữ liệu từ (vào) cache. Theo cách tương ứng trực tiếp thì MMU sẽ diễn giải ñịa chỉ phát ra từ CPU bằng cách chia ñịa chỉ thành 3 phần như là trong hình 8.5. Chiều dài tính bằng bit của mỗi phần trong ñó tính như sau: Chương VIII: Hệ thống bộ nhớ 255 – ðịa chỉ từ cần ñọc trong khối (Word field) = log 2 B, B – kích thước khối theo từ – Chỉ số khối cache ( Block field) = log 2 N, N-kích thước cache theo block – Nhãn (Tag field) = log 2 (M/N), M-kích thước bộ nhớ trong theo khối – Số bit trong trường ñịa chỉ bộ nhớ trong = log 2 (B.M) Ví dụ 2: Xét trường hợp bộ nhớ trong chứa 4K khối, bộ nhớ cache chứa 128 khối và mối khối có kích thước 16 từ nhớ. Hình 8.6 cho thấy cách tổ chức xếp ñặt khối nhớ theo kiểu tương ứng trực tiếp. Tag Cache Main memory 3 0 384 0 128 256 384 3968 1 1 129 1 129 257 385 3969 0 2 2 130 258 386 3970 126 126 31 127 4095 127 255 383 4095 0 1 2 3 31 Hình 8.6. Ánh xạ khối bộ nhớ trong ñến khối bộ nhớ cache ðể xác ñịnh số bit của các trường trong ñịa chỉ bộ nhớ trong, ta áp dụng cách tính ở trên thì có: – Word field = 2 2 log log 16 4 B bits = = – Chỉ số khối cache = 2 2 log log 128 7 N bits = = – Nhãn = 10 2 2 log ( / ) log (4.2 /128) 5 M N bits = = Chỉ số khối trong bộ nhớ Chỉ số khối cache Nhãn ðịa chỉ từ cần ñọc trong khối Hình 8.5.Các trường ñịa chỉ trong tương ứng trực tiếp ðịa chỉ bộ nhớ trong Chương VIII: Hệ thống bộ nhớ 256 Số bit trong trường ñịa chỉ bộ nhớ trong: 10 2 2 log ( . ) log (16 4.2 ) 16 B M bits = × = Trong hình 8.7. ñưa ra minh họa giải thích quá trình diễn giải ñịa chỉ bởi MMU theo các bước sau: 1. Sử dụng Block field ñể xác ñịnh khối bộ nhớ cache có chứa từ nhớ mà bộ VXL yêu cầu 2. Kiểm tra sự tương ứng trong trường Tag memory và so sánh nó với trường Tag field ñể xác ñịnh có hay không khối chứa từ nhớ cần thiết 3. Nếu có (cache hit) thì dựa vào trường word field ñể lấy ra từ nhớ cần thiết cho bộ VXL 4. Nếu không có (cache miss) thì phải ñem khối nhớ có chứa từ cần truy cập từ bộ nhớ trong vào cache. Hình 8.7. Chuyển ñổi ñịa chỉ tương ứng trực tiếp Chương VIII: Hệ thống bộ nhớ 257 Ưu ñiểm của kiểu tương ứng trực tiếp là nó rất ñơn giản, không cần tốn thời gian tìm kiếm và các cơ chế thay thế khối nhớ cũng ñơn gian. Nhược ñiểm chủ yếu là nó sử dụng cache không hiệu quả do một số khối có thể luôn luôn bị thay ñổi trong khi có thể một số khác lại không ñược dùng ñến. Ví dụ như trường hợp ví dụ 2 ở trên, giả sử bộ VXL yêu cầu ñến các khối nhớ theo thứ tự 0, 128, 256, 384 và 3968. Như vậy chỉ có khối nhớ cache ở vị trí số 0 ñược sử dụng, trong khi các khối nhớ khác trống. 8.2.1.2. Kiểu hoàn toàn phối hợp (Fully Associative Mapping) Một khối trong bộ nhớ trong có thể ñược ñặt vào vị trí bất kỳ trong cache. Tất nhiên ñầu tiên tìm ñặt vào các khối nào còn trống, nếu không còn khối nào trống thì mới phải áp dụng kỹ thuật thay thế khối mà ta sẽ xem xét sau. Ở ví dụ 1 nếu ñặt khối nhớ theo cách này thì hình minh họa ñược chỉ ra trong hình 8.4 b). Theo cách này thì MMU sẽ diễn giải ñịa chỉ phát ra từ CPU bằng cách chia ñịa chỉ thành 2 phần như là trong hình 8.8. Chiều dài tính bằng bit của mỗi phần trong ñó tính như sau: – ðịa chỉ từ cần ñọc trong khối (Word field) = log 2 B, B – kích thước khối theo từ – Chỉ số khối (hay nhãn - Tag field) = log 2 M, M- kích thước bộ nhớ trong theo khối – Số bit trong trường ñịa chỉ bộ nhớ trong = log 2 (B.M) Như vậy với ví dụ 2 ở trên ta sẽ có các thông số cho trường ñịa chỉ như sau: – Word field = 2 2 log log 16 4 B bits = = Chỉ số khối trong bộ nhớ ðịa chỉ từ cần ñọc trong kh ối Hình 8.8.Các trường ñịa chỉ trong hoàn toàn phối hợp ðịa chỉ bộ nhớ trong Chương VIII: Hệ thống bộ nhớ 258 – Nhãn = 10 2 2 log log (4.2 ) 12 M bits = = Số bit trong trường ñịa chỉ bộ nhớ trong: 10 2 2 log ( . ) log (16 4.2 ) 16 B M bits = × = Ưu ñiểm của phương pháp này là sử dụng cache rất hiệu quả. Trong bất kỳ trường hợp nào nếu một khối nhớ trong cache còn trống thi khi có yêu cầu từ bộ VXL ñến mội khối nhớ khác trong bộ nhớ trong thì nó sẽ ñược ñặt vào khối nhớ còn trống trong cache. Trừ trường hợp không còn khối nào trống thì phải áp dụng nguyên lý thay thế khối nhớ mà ta sẽ xem xét trong các phần sau. Tuy nhiên nhược ñiểm của phương pháp này là ñòi hỏi thiết kế phần cứng phức tạp nhằm ñáp ứng việc tìm kiếm khối cần thiết ñược nhanh hơn. 8.2.1.3. Kiểu phối hợp theo tập hợp (Set – Associative Mapping) Hai cách trình bày ở trên ñều có những ưu ñiểm và nhược ñiểm nhất ñịnh và cách phối hợp theo tập hợp nhằm dung hòa các ưu, nhược ñiểm của cả hai cách ñó. Theo ñó, cache bao gồm các tập hợp của các khối cache. Mỗi tập hợp của các khối cache chứa số khối như nhau. Một khối của bộ nhớ trong có thể ñược ñặt vào một số vị trí khối giới hạn trong tập hợp ñược xác ñịnh bởi công thức : mod j i N = Trong ñó: j: vị trí khối ñặt trong cache i: số thứ tự của khối trong bộ nhớ trong N: số khối của cache Ở ví dụ 1 nếu ñặt khối nhớ theo cách này và nếu mỗi tập hợp gồm 2 khối nhớ thì hình minh họa ñược chỉ ra trong hình 8.4 c). Theo cách này thì MMU sẽ diễn giải ñịa chỉ phát ra từ CPU bằng cách chia ñịa chỉ thành 3 phần như là trong hình 8.9. Chiều dài tính bằng bit của mỗi phần trong ñó tính như sau: Chương VIII: Hệ thống bộ nhớ 259 – ðịa chỉ từ cần ñọc trong khối (Word field) = log 2 B – Chỉ số tập hợp (Set field) = log 2 S, S – số tập hợp trong cache. Chỉ số này chỉ ra số thứ tự tập hợp trong cache cần xem xét – Nhãn (Tag field) = log 2 (M/S), S = N/Bs, Bs số khối trong một tập hợp. Dùng chỉ số này ñể so sánh tương ứng với nhãn của các khối cache thuộc tập hợp ñược chỉ ra bởi phần chỉ số tập hợp. – Số bit trong trường ñịa chỉ bộ nhớ trong = log 2 (B.M) Như vậy với ví dụ 2 ở trên ta, nếu mỗi tập hợp chứa 4 khối thì ta sẽ có các thông số cho trường ñịa chỉ như sau: – Số tập hợp trong cache S= 128/4 = 32 tập hợp – Word field = 2 2 log log 16 4 B bits = = – Set field = log 2 S=log 2 32 = 5 bits – Nhãn = 10 2 2 log / log (4.2 / 32) 7 M S bits = = Số bit trong trường ñịa chỉ bộ nhớ trong: 10 2 2 log ( . ) log (16 4.2 ) 16 B M bits = × = 8.2.2. KỸ THUẬT THAY THẾ KHỐI NHỚ Như ñã trình bày ở trên, trong trường hợp thất bại cache hay không tìm thấy khối nhớ trong cache thì một vấn ñề ñặt ra là khối nào phải ñược thay thế)? Khi có thất bại cache, bộ ñiều khiển cache thâm nhập vào bộ nhớ trong và chuyển khối mà bộ xử lý cần ñọc (ghi) vào cache. Như vậy, trong trường hợp các khối nhớ trong cache ñều không trống thì khối nào trong cache sẽ bị thay thế bới khối mới ñược chuyển lên. ðối với kiểu tương ứng trực tiếp, vị trí Chỉ số khối trong bộ nhớ Chỉ số tập hợp Nhãn ðịa chỉ từ cần ñọc trong khối Hình 8.9.Các trường ñịa chỉ trong phối hợp theo tập hợp ðịa chỉ bộ nhớ trong Chương VIII: Hệ thống bộ nhớ 260 ñặt khối không có sự lựa chọn, nó ñược xác ñịnh bởi trường chỉ số khối cache trong ñịa chỉ của từ cần ñọc (ghi). Nếu cache là kiểu hoàn toàn phối hợp hay phối hợp theo tập hợp thì khi thất bại phải chọn lựa thay thế trong nhiều khối. Có bốn chiến thuật chủ yếu dùng ñể chọn khối thay thế trong cache: - Thay thế ngẫu nhiên (RS:Random Selection): ñể phân bố ñồng ñều việc thay thế, các khối cần thay thế trong cache ñược chọn ngẫu nhiên. - Khối xưa nhất (LRU: Least Recently Used): các khối ñã ñược thâm nhập sẽ ñược ñánh dấu và khối bị thay thế là khối không ñược dùng từ lâu nhất. - Vào trước ra trước (FIFO: First In First Out): Khối ñược ñưa vào cache ñầu tiên, nếu bị thay thế, khối ñó sẽ ñược thay thế trước nhất. - Tần số sử dụng ít nhất (LFU: Least Frequently Used): Khối trong cache ñược tham chiếu ñến ít nhất . Nguyên tắc này sử dụng hệ quả của nguyên tắc sử dụng ô nhớ theo thời gian: nếu các khối mới ñược dùng có khả năng sẽ ñược dùng trong tương lai gần, khối bị thay thế là khối không dùng trong thời gian lâu nhất. 8.2.3. CHIẾN THUẬT GHI Chúng ta ñã xem xét các vấn ñề chính liên quan ñến kỹ thuật ánh xạ giữa các cấp bộ nhớ và chiến lược thay thế khối nhớ. Còn một vấn ñề liên quan quan trong nữa mà chúng ta sẽ xem xét trong phần này ñó là sự gắn kết giữa các cấp bộ nhớ mà trong trường hợp ñơn giản chúng ta xem xét giữa cache và bộ nhớ trong. Câu hỏi ñặt ra là việc gì sẽ xảy ra khi cần ghi vào bộ nhớ? Thông thường bộ VXL thâm nhập cache ñể ñọc thông tin. Chỉ có khoảng 15% các thâm nhập vào cache là ñể thực hiện thao tác ghi (con số này là 33% với các tính toán vectơ-vectơ và 55% ñối với các phép dịch chuyển ma trận). Như vậy, ñể tối ưu hoá các hoạt ñộng của cache, các nhà thiết kế tìm cách tối ưu hoá việc ñọc bởi vì các bộ xử lý phải ñợi ñến khi việc ñọc hoàn thành nhưng sẽ [...]... nh trong: 0C3H, 05AH, 1C5H 273 274 Ki n trúc máy tính – Vũ ð c Lung Ki n trúc máy tính – Vũ ð c Lung PH L C L i nói ñ u Chương I: Gi i thi u 1.1 L ch s phát tri n c a máy tính 1.1.1 Th h zero -máy tính cơ h c (1642-1945) 1.1.2 Th h I – bóng ñèn ñi n (1945-1955) 1.1.3 Th h II – transistor (1955-1965) 1.1.4 Th h III – m ch tích h p (1965-1980) 1.1.5 Th h IV – máy tính cá nhân (1980-ñ n nay) 1.2 Kh i các... 273 275 279 278 Ki n trúc máy tính – Vũ ð c Lung TÀI LI U THAM KH O 1 Nguy n Minh Tu n, Ki n trúc máy tính (giáo trình lư c gi n), V3.7, Trư ng ðH Khoa h c t nhiên tp HCM 2 C u trúc máy tính cơ b n, t ng h p và biên d ch VN-Guide, nhà xu t b n th ng kê 3 Võ ð c Khánh ,Ki n trúc máy tính, ThS Võ ð c Khánh 4 Võ Văn Chín, Nguy n H ng Vân, Ph m H u Tài Giáo trình ki n trúc máy tính ðH C n Thơ, 2003 5 M... 5.2.2 M ch l t D 5.2.3 M ch l t JK 5.3.4 M ch l t T 78 79 85 85 86 87 88 89 92 93 94 95 98 100 101 103 103 103 108 122 135 135 137 138 142 144 151 155 155 156 157 160 161 161 276 Ki n trúc máy tính – Vũ ð c Lung 5.3 M ch l t l (Flip-flop) 5.4 M ch tu n t Bài t p chương V Chương VI: Ki n trúc b l nh 6.1 Phân lo i ki n trúc b l nh 6.2 ð a ch b nh 6.3 Mã hóa t p l nh 6.3.1 Các tiêu chu n thi t k d ng th c... n trúc máy tính – Vũ ð c Lung 162 165 173 175 175 179 181 182 184 187 191 201 203 204 206 207 209 212 216 218 218 221 224 227 228 229 231 236 238 244 245 245 248 251 277 8.2.2 K thu t thay th kh i nh 8.2.3 Chi n thu t ghi 8.2.4 Các lo i cache 8.3 B nh trong (Main memory) 8.4 B nh o (Virtual memory) Câu h i và bài t p chương VIII Ph l c Tài li u tham kh o 259 260 262 263 268 273 275 279 278 Ki n trúc. .. b nh trong máy tính Qua ñó cho th y s khác bi t gi a các lo i b nh trong máy tính và các k thu t k t h p các lo i b nh , t b nh l n ch m, ñ n các b nh r t nh nhưng c c nhanh thành m t không gian nh chung v i t c ñ cao và giá c ph i chăng Ngoài ra còn cung c p các ki n th c v thi t k và c u t o c a các lo i b nh , qua ñó cung c p cho sinh viên các hi u bi t cơ b n v h th ng b nh trong máy tính ð i v... trong hai gi i pháp sau: Trong m t máy tính có th có nhi u lo i cache M t s máy dùng m t Cache duy nh t ñ ch a ñ ng th i c l nh và d li u, nhưng m t s máy l i s d ng Cache riêng l b ng cách s d ng m t cache l nh riêng và m t cache d li u riêng (ví d Pentium, Pentium 4, Itanium, PowerPC 620, IBM SP,…) Gi i pháp dùng cache riêng l có l i là tránh các khó khăn do ki n trúc, khi thi 261 262 Chương VIII:... VIII: H th ng b nh C u trúc phân c p b nh ñư c minh h a như sơ ñ hình 8.13 công cache, trong khi n u có l i trang thì có th ph i m t m t th i gian g p 100 0 l n khi không có l i trang Trong các máy tính hi n ñ i 1 ño n có th có ñ l n t 1 byte ñ n 4GB còn 1 trang thông thư ng có ñ l n t 2KB ñ n 16 K bytes B nh o có th ñư c qu n lý b ng cách chia b nh thành các m ng nh có ñ l n tính theo ño n, cơ ch này... XHCN và Vi t Nam 1.3 Khuynh hư ng hi n t i 1.4 Phân lo i máy tính 1.5 Các dòng Intel Câu h i và bài t p chương I Chương II: Các b ph n cơ b n c a máy tính 2.1 B x lý (CPU) 2.2 B n m ch chính (Mainboard) 2.3 ñĩa m m (FDD) 2.4 ñĩa c ng (HDD) 2.5 CD và DVD 2.6 B nh RAM và ROM 2.7 Bàn phím (Keyboard) 2.8 Chu t (Mouse) 2.9 Card màn hình (VGA Card) 2 .10 Màn hình (Monitor) 2.11 Card m ng (Network adapter) và... các nguyên nhân chính gây th t b i cache và cách h n ch nó? 1 M c tiêu chính c a các c p b nh trong máy tính là gì? V sơ ñ các c p b nh cơ b n 2 Tính th i gian truy c p trung bình c a m t h th ng b nh có 3 c p: cache, b nh trong và b nh ph n u th i gian truy c p vào t ng lo i b nh tương ng là 20 ns, 100 ns và 1 ms bi t r ng t s thành công c a cache là 90% và b nh trong là 95% 3 Hãy xác ñ nh s bit c... tr chính trong máy tính Hình 8 .10 cho ta th y sơ ñ kh i giao ti p cơ b n gi a b nh trong và CPU Có hai thanh ghi ñ c bi t c a CPU ñư c dùng cho các thao tác gi a CPU và b nh trong ñó là thanh ghi ñ a ch b nh (Memory Address Register – MAR) và thanh ghi d li u b nh (Memory Data 263 n MAR b MDR b n ñư ng ñ a ch b ñư ng d li u A0-An-1 1 D0-Db-1 Tín hi u ñi u khi n 0 R /W 2n-1 Hình 8 .10 Giao ti p cơ . Kiến trúc máy tính – Vũ ðức Lung 279 TÀI LIỆU THAM KHẢO 1. Nguyễn Minh Tuấn, Kiến trúc máy tính (giáo trình lược giản), V3.7, Trường ðH Khoa học tự nhiên tp. HCM 2. Cấu trúc máy. 161 Kiến trúc máy tính – Vũ ðức Lung 277 5.3. Mạch lật lề (Flip-flop) 5.4. Mạch tuần tự Bài tập chương V 162 165 173 Chương VI: Kiến trúc bộ lệnh 175 6.1. Phân loại kiến trúc. Kiến trúc máy tính – Vũ ðức Lung 275 PHỤ LỤC Trang Lời nói ñầu 1 Chương I: Giới thiệu 3 1.1. Lịch sử phát triển của máy tính 1.1.1. Thế hệ zero -máy tính cơ học

Ngày đăng: 23/07/2014, 23:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan