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.

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.

Bạn đang xem nội dung tài liệu Giáo trình Kiến trúc máy tính - Chương 7: Tổ chức bộ xử lý, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên

Chương VII: Tổ chức Bộ xử lý 191 Chương VII: TỔ CHỨC BỘ XỬ LÝ Trong các chương trước chúng ta đã các khái niệm cơ bản liên quan đến các phần khác nhau của máy tính. Trong chương này chúng ta tập trung vào bộ phận chính yếu của mọi máy tính – bộ xử lý trung tâm (central processing unit - CPU). Chức năng chính yếu của CPU là thực thi các lệnh được lưu trong bộ nhớ chính. Như đã đề cập trong phần giới thiệu, do giáo trình này được thiết kế dành cho sinh viên học ngay học kỳ đầu tiên cho nên chúng ta chỉ đề cập đến các vấn đề ở mức độ đơn giản. 7.1. Tổ chức bộ xử lý trung tâm ðể hiểu được cách tổ chức trong CPU như thế nào chúng ta hãy xem những địi hỏi ở bên trong nĩ và những gi nĩ phải thực hiện. Nĩi chung những cơng việc nĩ phải làm là: - Tìm nạp lệnh (Fetch Instruction): CPU đọc một lệnh từ bộ nhớ - Diễn giải lệnh (Interpret Instruction): Lệnh được giải mã và xác định xem hành động gì địi hỏi thực hiện - Tìm nạp dữ liệu (Fetch data): ðể thực hiện câu lệnh cĩ thể địi hỏi đọc dữ liệu từ bộ nhớ hoặc từ các thiết bị nhập xuất - Xử lý dữ liệu (Process data): Việc thi hành lệnh cĩ thể địi hỏi thực hiện một vài phép tính số học hay logic trên các dữ liệu tìm nạp vào - Ghi dữ liệu (Write data): Kết quả thực thi lệnh cũng cĩ thể địi hỏi phải ghi dữ liệu vào bộ nhớ hoặc ghi ra các thiết bị nhập xuất. ðể làm được các việc như vậy địi hỏi CPU cần lưu một số dữ liệu tạm thời. Nĩ phả nhớ vị trí của lệnh vừa thực hiện cũng như nĩ cần phải biết được ở đâu cĩ thể nhận được lệnh tiếp theo để thực hiện. Nĩ cần lưu tập lệnh và dữ liệu tạm thời trong khi thực thi Chương VII: Tổ chức Bộ xử lý 192 một lệnh nào đĩ. Nĩi cách khác CPU cần một bộ nhớ trong nhỏ để tiện lợi làm việc. Nĩi chung để thực hiện các việc vừa liệt kê ở trên, một bộ xử lý trung tâm đơn giản cần bao gồm ba nguyên tố quan trọng nhất: tập các thanh ghi, một bộ xử lý logic số học (Arithmetic Logic Unit - ALU) và một bộ điều khiển (Control Unit - CU). Tổ chức một máy tính đơn giản gồm CPU và tương tác của nĩ với bộ nhớ chính và các thiết bị nhập xuất cĩ thể biểu diễn như hình 7.1. Hình 7.1. Tổ chức một máy tính đơn giản Bộ các thanh ghi của các loại máy tính là khác nhau và thường chia làm hai loại, các thanh ghi được dùng với mục đích chung (general-purpose registers), và các thanh ghi với mục đích đặc biệt (special-purpose registers). Các thanh ghi mục đích chung được sử dụng cho bất kỳ mục đích nào, ví dụ như cĩ thể dùng nĩ làm nơi lưu trữ các loại dữ liệu khác nhau, dùng làm lưu các tốn hạng của một lệnh. Trong khi các thanh ghi với mục đích đặc biệt chỉ cĩ một số chức năng bên trong CPU, ví dụ như bộ đếm chương Chương VII: Tổ chức Bộ xử lý 193 trình (progam counter - PC) là một thanh ghi với mục đích đặc biệt đĩ là chỉ dùng để lưu địa chỉ của lệnh cần thực hiện tiếp theo. Một ví dụ khác của thanh ghi với mục đích đặc biệt là thanh ghi mã lệnh (Instruction Registers – IR), thanh ghi này chỉ được dùng để lưu mã lệnh đang thực hiên tại thời điểm hiện tại. Bộ logic số học ALU cung cấp một mạch số cần thiết để thực hiện các phép tính số học (như cộng, trừ, nhân , chia), logic (như NOT, AND, OR) và các phép tốn dịch chuyển trong bộ lệnh. Bộ điều khiển (control block) chịu trách nhiệm điều khiển mọi hoạt động của CPU như tìm nạp lệnh từ bộ nhớ chính, giải mã nĩ, định loại xem nĩ thuộc loại nào và cuơi cùng là ra lệnh cho các bộ phận trong CPU làm việc gì. CPU tìm nạp lệnh từ bộ nhớ chính, đọc dữ liệu từ bộ nhớ chính, ghi dữ liệu ngược lại đĩ khi cần và truyền các dữ liệu từ các thiết bị ngoại vi vào máy tính cũng như đưa các dữ liệu trong máy tính ra các thiết bị ngoại vi. Các thiết bị ngoại vi ở đây cĩ thể là ổ đã cứng, máy in, flash memory,… Trong hình 7.2 cho ta sơ đồ tổng quát của CPU một cách tỷ mỉ hơn. Trong đĩ chỉ ra việc truyền dữ liệu và đường điều khiển logic cũng được chỉ ra bao gồm cả một nguyên tố gọi là trục CPU nội (Internal CPU bus). Nguyên tố này được cần để truyền dữ liệu giữa các thanh ghi khác nhau và ALU, bởi vì trên thực tế thì ALU thực thi chỉ trên các dữ liệu nằm ở bộ nhớ bên trong CPU. Chương VII: Tổ chức Bộ xử lý 194 Hình 7.2. Cấu trúc bên trong của CPU 7.2. Bộ điều khiển Giống như trong một trung đội thì mọi hoạt động được điều khiển bởi trung đội trưởng, bộ điều khiển chịu trách nhiệm điều khiển mọi hoạt động của CPU. Bộ điều khiển tạo các tín hiệu điều khiển di chuyển số liệu (tín hiệu di chuyển số liệu từ các thanh ghi đến bus hoặc tín hiệu viết vào các thanh ghi), điều khiển các tác vụ mà các bộ phận chức năng phải làm (điều khiển ALU, điều khiển đọc và viết vào bộ nhớ trong...). Bộ điều khiển cũng tạo các tín hiệu giúp các lệnh được thực hiện một cách tuần tự. ðể thiết kế một bộ điều khiển, ta cĩ thể dùng một trong hai cách là dùng mạch điện tử hoặc dùng vi chương trình (microprogram). Chương VII: Tổ chức Bộ xử lý 195 Bộ điều khiển mạch điện tử Trong chương 5 chúng ta đã học về mạch tuần tự. Một bộ điều khiển mạch điện tử cĩ nguyên lý hoạt động như một mạch tuần tự. Tức là sẽ cĩ các trạng thái và các đường tín hiệu mà sự thay đổi của các tín hiệu tại một thời điểm nhất định sẽ làm trạng thái giữ nguyên hoặc chuyển sang một trạng thái mới. ðể hiểu được vận hành của bộ điều khiển mạch điện tử, chúng ta xét đến mơ tả về Automate (mạch tự động hĩa) trạng thái hữu hạn như một mạch tuần tự cĩ nhiều hệ thống hay nhiều thành phần mà ở mỗi thời điểm xem xét đều cĩ một trạng thái (state). Mục đích của trạng thái là ghi nhớ những gì cĩ liên quan trong quá trình hoạt động của hệ thống. Vì chỉ cĩ một số trạng thái nhất định nên nĩi chung khơng thể ghi nhớ hết tồn bộ lịch sử của hệ thống, do vậy nĩ phải được thiết kế cẩn thận để ghi nhớ những gì quan trọng. Ưu điểm của hệ thống (chỉ cĩ một số hữu hạn các trạng thái) đĩ là cĩ thể cài đặt hệ thống với một lượng tài nguyên cố định. Chẳng hạn, chúng ta cĩ thể cài đặt Automate trạng thái hữu hạn trong phần cứng máy tính ở dạng mạch điện hay một dạng chương trình đơn giản, trong đĩ, nĩ cĩ khả năng quyết định khi chỉ biết một lượng giới hạn dữ liệu hoặc bằng cách dùng vị trí trong đoạn mã lệnh để đưa ra quyết định. Theo tổ chức điều khiển cứng, luận lý điều khiển được cài đặt qua các cổng , mạch lật, mạch giải mã và các mạch số khác. Thuận lợi là cĩ thể tối ưu để tạo ra chế độ nhanh cho tác vụ Theo tổ chức điều khiển vi trình, thơng tin điều khiển được lưu trong bộ nhớ điều khiển, bộ nhớ điều khiển được lập trình để khởi động dãy vi tac vụ theo yêu cầu. Khi thay đổi thiết kế, cần thay đổi cách kết nối các thành phần nếu tổ chức theo kiểu điều khiển cài cứng. Nếu tổ chức theo điều khiển vi trình chỉ cần cập nhật vi trình trong bộ nhớ điều khiển. Chương VII: Tổ chức Bộ xử lý 196 Hình 7.3. cho ta sơ đồ khối một bộ điều khiển cơ bản. Lệnh được đọc từ bộ nhớ và đưa vào thanh ghi lệnh IR. Thanh ghi lệnh thì như trong chương 6 chúng ta đã biết, trong đĩ cĩ phần mã hĩa vi tác vụ hay opcode sẽ được qua một mạch giải mã để biết được mã tác vụ phải làm là gì. Sau khi giải mã, các tín hiệu này được đưa vào mạch điều khiển gồm các cổng điều khiển. ðể điều khiển các hoạt động được đồng bộ, ta dùng một bộ tạo các thời hiệu, mỗi thời hiệu ứng với một thời điểm nhất định. Các thời hiệu này cùng với các tín hiệu từ bộ giải mã và từ các tín hiệu khác trong phần cịn lại của thanh ghi IR sau khi qua các cổng điều khiển sẽ cho ta các tín hiệu điều khiển cần thiết. Các tín hiệu điều khiển cĩ thể là đưa dữ liệu một thanh ghi nào đĩ lên BUS, đưa dữ liệu từ trên BUS vào thanh ghi, mở tín hiệu ghi vào một thanh ghi, đưa ra tín hiệu đọc/ghi vào bộ nhớ chính, khởi động ngắt để truyền dữ liệu ra HDD, máy in,… Mã tác vụ địa chỉ bộ nhớ, thanh ghi,… Mạch giải mã nxm Các cổng điều khiển Tín hiệu điều khiển m-1 Dm-1 … 0 Bộ tạo các thời hiệu D0 T Các tín hiệu khác (INR, CLR,…) Clock IR Hình 7.3. Sơ đồ khối bộ điều khiển máy tính cơ bản Chương VII: Tổ chức Bộ xử lý 197 Bộ điều khiển vi chương trình Thay vì bộ điều khiển cứng dùng mạch tổ hợp các cổng để cho ra các tín hiệu điều khiển thì điều khiển vi trình dùng một vi chương trình lập sẵn nằm trong bộ nhớ điều khiển để khởi động dãy vi tac vụ theo yêu cầu. Bộ điều khiển bằng vi chương trình được dùng rộng rãi trong các bộ xử lý CISC. Bộ xử lý này cĩ tập lệnh phức tạp với các lệnh cĩ chiều dài khác nhau và cĩ dạng thức phức tạp. Trong các bộ xử lý CISC, người ta cài đặt một lệnh mã máy bằng cách viết một vi chương trình. Như vậy cơng việc khá đơn giản và rất hữu hiệu. Các sai sĩt trong thiết kế automat điều khiển cũng dễ sửa đổi. 7.3. Bộ thanh ghi Các thanh ghi là một loại bộ nhớ đặc biệt nhanh nằm bên trong CPU và được dùng để tạo ra và lưu trữ các kết quả của các lệnh trong CPU và các phép tốn khác. Các loại máy tính khác nhau cĩ các bộ thanh ghi khác nhau. Chúng khác nhau về số lượng các thanh ghi, các loại thanh ghi và cả chiếu dài của mỗi thanh ghi. Chúng cũng khác nhau trong cách dùng cho mỗi thanh ghi. Thanh ghi muc đích chung cĩ thể được dùng cho nhiều mục đích và được nhà lập trình dùng để gán cho những trạng thái khác nhau của các hàm, các biến. Thanh ghi cĩ mục đích đặc biệt chỉ được dùng cho một số chức năng đặc biệt. Trong một số trường hợp, một vài thanh ghi chỉ được dùng để lưu trữ dữ liệu và khơng thể dùng trong tính tốn địa chỉ của các tốn hạng. Chiều dài của thanh ghi phải đủ để lưu trữ hầu hết các loại dữ liệu, đặc biệt là thanh ghi địa chỉ phải đủ dài để cĩ thể lưu được địa chỉ lớn nhất. Số lượng thanh ghi trong một kiến trúc máy tính ảnh hưởng trực tiếp đến việc thiết kế bộ lệnh. Nếu số lượng thanh gi ít sẽ dẫn đến việc phải sử dụng tham chiếu hay con trỏ tới bộ nhớ nhiều hơn làm giảm đáng kể đến tốc độ thực thi của chương trình. Chương VII: Tổ chức Bộ xử lý 198 Một dạng khác của các thanh ghi được dùng để lưu các bit trạng thái của bộ xử lý hay là các cờ trạng thái. Những bit này thay đổi tùy theo kết quả thực hiện một lệnh nào đĩ trong CPU Thanh ghi truy cập bộ nhớ Cĩ hai thanh ghi được dùng đặc biệt trong các lệnh đọc/ghi với bộ nhớ: thanh ghi dữ liệu bộ nhớ (memory data register - MDR) và thanh ghi địa chỉ bộ nhớ (memory address regiater – MAR). Hai thanh ghi này được CPU sử dụng đặc biệt và các nhà lập trình khơng thể truy cập trực tiếp vào chúng. Trong thứ tự thực hiện một lệnh ghi vào một vùng nhớ đặc biệt, MDR và MAR được dùng như sau: 1. Một từ cần lưu vào một vị trí nào đĩ trong bộ nhớ, đầu tiên sẽ được CPU tải vào thanh ghi MDR 2. ðịa chỉ của vùng nhớ đĩ (vùng nhớ sẽ ghi dữ liệu vào) được CPU tải vào trong MAR 3. Sau cùng bộ điều khiển sẽ phát ra tín hiệu điều khiển “ghi” (write) để ghi dữ liệu nằm trên MDR vào địa chỉ nằm trên MAR. Tương tự khi thực hiện một lệnh đọc (read) từ bộ nhớ, thanh ghi MDR và MAR sẽ được dùng như sau: 1. ðịa chỉ của từ nhớ nằm trong bộ nhớ cần đọc được đưa vào MAR 2. Bộ điều khiển sẽ phát ra tín hiệu điều khiển “đọc” (read) để đọc dữ liệu nằm trong bộ nhớ. 3. Dữ liệu nằm trong bộ nhớ cĩ địa chỉ chứa trong MAR sẽ được tải vào trong MDR Thanh ghi chuyển tải lệnh Cĩ hai thanh ghi rất quan trọng được dùng để lưu các câu lệnh cho việc thực thi của chương trình là: Bộ đếm chương trình (program counter – PC) và thanh ghi lệnh (instruction register – IR). Chương VII: Tổ chức Bộ xử lý 199 Thanh ghi PC dùng để lưu đạ chỉ của lệnh tiếp theo qua đĩ sẽ điều khiển thứ tự thực hiện các lệnh trong một chương trình. Các lệnh thực hiện lần lượt được tìm thấy và lưu vào trong thanh ghi IR. Tại mỗi thời điểm chỉ cĩ một lệnh được lưu trong IR. Sau khi đã tìm và đem một lệnh về cho IR, thanh ghi PC sẽ được nạp một giá trị mới là địa chỉ của lệnh tiếp theo. Thanh ghi trạng thái Các thanh ghi trạng thái hay là các cờ trạng thái được sử dụng để giữ các thơng tin về trạng thái của quá trình thực thi lệnh. Một số kiến trúc máy tính chứa một thanh ghi đặc biệt gọi là thanh ghi từ trạng thái của chương trình (program stature word – PSW). Trong PSW chứa các bit trạng thái cho biết kết quả của các phép tính số học (cĩ bằng 0 khơng?cĩ số thừa khơng?...), trạng thái ngắt, thơng tin bảo vệ bộ nhớ, tình trạng của bộ xử lý,… Các thanh ghi họ 80x86 Trong các thế hệ máy tính 32 bit của Intel như 386,486 và Pentium cĩ ba nhĩm thanh ghi, đĩ là: - Thanh ghi mục đích chung - Thanh ghi segment - Thanh ghi đếm chương trình PC và thanh ghi cờ trạng thái Trong hình 7.4 cho ta thấy ba nhĩm này. Nhĩm thứ nhất là các thanh ghi mục đích chung được đặt tên bằng các ký tự A,B,C,D,SI (source index), DI (destination index), SP (stack pointer) và BP (base pointer). Nhĩm thứ hai bao gồm các thanh ghi CS (code segment), SS (stack segment) và 4 thanh ghi đoạn dữ liệu DS, ES, FS và GS. Nhĩm thanh ghi thứ ba bao gồm thanh ghi lệnh IR và thanh ghi trạng thái. Trong số những bit trạng thái, 5 bit đầu tiên đồng nhất với các bit của bộ vi xử lý 8 bit trước đây 8085. Các bit tiếp theo 6-11 giống như được giới thiệu trong 8086. Các bit 12- 14 được giới thiệu trong 80286 trong khi các bit 16-17 trong 80386. Bit flag 18 trong 80486. Trong đĩ cịn nhiều bit chưa được Chương VII: Tổ chức Bộ xử lý 200 dùng tới và để làm dự trữ cho những mục đích cĩ thể xuất hiện sau này. Hình 7.4. Các thanh ghi họ 80x86 7.4. ðường đi dữ liệu (Datapath) Phần đường đi dữ liệu gồm cĩ bộ logic-số học (ALU: Arithmetic and Logic Unit), các mạch dịch, các thanh ghi và các đường nối kết các bộ phận trên. Phần này chứa hầu hết các trạng thái của bộ xử lý. Ngồi các thanh ghi tổng quát, phần đường đi dữ liệu cịn chứa thanh ghi đếm chương trình (PC: Program Counter), thanh ghi trạng thái (SR: Status Register), các thanh ghi địa chỉ bộ nhớ MAR, thanh ghi số liệu bộ nhớ MDR, bộ đa hợp (MUX: Multiplexor), đây là điểm cuối của các kênh dữ liệu - CPU và bộ nhớ, với nhiệm vụ lập thời biểu truy cập bộ nhớ từ CPU và các kênh dữ liệu, các hệ thống bus Chương VII: Tổ chức Bộ xử lý 201 Nhiệm vụ chính của phần đường đi dữ liệu là đọc các tốn hạng từ các thanh ghi tổng quát, thực hiện các phép tính trên tốn hạng này trong ALU và lưu trữ kết quả trong các thanh ghi tổng quát. Ở ngã vào và ngã ra các thanh ghi tổng quát cĩ các mạch chốt A, B, C. Như đã đề cập ở trên, thơng thường, số lượng các thanh ghi tổng quát là 32. Phần đường đi của dữ liệu chiếm phân nửa diện tích của bộ xử lý nhưng là phần dễ thiết kế và cài đặt trong bộ xử lý. 7.4.1. Tổ chức One-Bus Các thanh ghi CPU và ALU dùng một BUS đơn để di chuyển dữ liệu ra vào giữa chúng với nhau. Vì một BUS chỉ cĩ thể sử dụng một dữ liệu di chuyển trong một chu kỳ đồng hồ, cho nên một phép tốn cĩ hai tốn hạng sẽ phải cần hai chu kỳ đồng hồ để tìm và nạp các tốn hạng cho ALU. Dạng tổ chức BUS này là đơn giản nhất nhưng nĩ bị nhiều hạn chế về số lượng dữ liệu được chuyển tải trong một chu kỳ đồng hồ nĩi chung đã làm chậm cả hệ thống lại rất nhiều. Hình 7.5 cho ta sơ đồ tổ chức đường đi dữ liệu one-bus . Nĩ bao gồm bộ các thanh ghi đa mục đích, một thanh ghi địa chỉ bộ nhớ MAR, một thanh ghi dữ liệu bộ nhớ MDR, một thanh ghi lệnh IR, một thanh ghi đếm chương trình PC và bộ logic số học ALU. Hình 7.5. Tổ chức One-Bus Chương VII: Tổ chức Bộ xử lý 202 7.4.2. Tổ chức Two-Bus, Three-Bus Sử dụng hai BUS để tổ chức đường đi dữ liệu là một giải pháp giúp cải thiện tốc độ rất nhiều so với cơng nghệ dùng one-bus. Trong trường hợp này các thanh ghi đa mục đích được nối với cả hai bus. Dữ liệu cĩ thể truyền từ hai thanh ghi khác nhau đến đầu vào của ALU tại cùng một thời điểm. Do vậy, một lệnh cĩ hai tốn hạng cĩ thể tìm và nạp trong cùng một chu kỳ đồng hồ và như vậy rõ ràng tốc độ xử lý lệnh lúc này đã tăng gấp đơi. Hơn nữa, trong cấu trúc này (hình 7.6) cịn cĩ một thanh ghi đệm (buffer register) cĩ thể cần thiết để lưu trữ dữ liệu đầu ra của ALU khi hai bus đạng bận chuyển tải dữ liệu. Trong hình 7.6(a) cho ta thấy cách tổ chức kiến trúc kiểu two-bus này. Trong một số trường hợp, một bus cĩ thể được dùng để di chuyển dữ liệu vào thanh ghi (in-bus). Ở trừơng hợp này một thanh ghi đệm thêm cĩ thể được dùng như là một bộ nhớ tạm thời trước khi đưa vào ALU. ðầu ra của ALU được nối trực tiếp với in- bus và cho phép chuyển kết quả tính tốn tới một trong các thanh ghi. Hình 7.6(b) cho ta tổ chức two-bus với in-bus và out-bus. Trong tổ chức three-bus thì hai trong số đĩ được dùng như là các bus nguồn, bus cịn lại như là bus đích. Các bus nguồn chuyển dữ liệu ra khỏi thanh ghi (out-bus), và bus đích cĩ thể chuyển dữ liệu vào trong các thanh ghi (in-bus). Mỗi đầu của out- bus được nối với đầu vào của ALU. ðầu ra của ALU thì nối trực tiếp với in-bus. Như vậy chúng ta lại cĩ thể truyền dữ liệu nhiều hơn trong cùng một chu kỳ đồng hồ. Tuy nhiên việc tăng các bus lên sẽ làm tăng độ phức tạp của phần cứng lên nhiều hơn, vì vậy tùy theo mức độ cần thiết mà các loại máy tính khác nhau sẽ cĩ số lượng bus khác nhau. Tổ chức máy tính đơn giản loại three-bus cĩ thể mih họa như hình 7.7. Chương VII: Tổ chức Bộ xử lý 203 Hình 7.6. Tổ chức đường truyền dữ liệu dạng two-bus Chương VII: Tổ chức Bộ xử lý 204 Hình 7.7. Tổ chức đường truyền dữ liệu dạng three-bus 7.5. Diễn tiến thi hành lệnh mã máy(CPU instruction cycle) Cơng việc của CPU diễn ra liên tục và việc thực hiện các lệnh diễn ra như trong hình 7.8. Các lệnh được lấy ra từ bộ nhớ chính và khi CPU tìm thấy một lệnh, nĩ sẽ phân tích lệnh đĩ để thực thi, sau đĩ lại sẽ tìm nạp lệnh tiếp theo và cứ như vậy diễn ra liên tục. Việc thi hành một lệnh mã máy cĩ thể chia thành 5 giai đoạn sau:  ðọc lệnh (IF: Instruction Fetch)  Giải mã lệnh (ID: Instruction Decode)  Thi hành lệnh (EX: Execute)  Thâm nhập bộ nhớ trong hoặc nhảy (MEM: Memory access)  Lưu trữ kết quả (RS: Result Storing). Mỗi giai đoạn được thi hành trong một hoặc nhiều chu kỳ xung nhịp. Chương VII: Tổ chức Bộ xử lý 205 Hình 7.8. Hoạt động của CPU 1. ðọc lệnh (fetch instruction): Chuỗi các sự kiện trong một lần tìm đọc lệnh cị thể tổng quát như sau: 1. Dữ liệu trong PC được load vào MAR: MAR ← PC 2. Giá trị trong thanh ghi PC tăng lên 1: PCPC+1 3. Kết quả của lệnh đọc từ bộ nhớ, dữ liệu được load vào MDR: MDRM[MAR] 4. Dữ liệu trong MDR được load vào IR: IR ← M[MAR] Bộ đếm chương trình PC được đưa vào MAR . Lệnh được đọc từ bộ nhớ trong, tại các ơ nhớ cĩ địa chỉ nằm trong MAR và được đưa vào thanh ghi lệnh IR. Thứ tự thực hiện lệnh theo thời gian đối với loại one-bus như sau: Chương VII: Tổ chức Bộ xử lý 206 Nếu dùng three-bus như hình 7.7 thì ta cĩ thứ tự các bước như sau: 2. Giải mã lệnh và đọc các thanh ghi nguồn: A ← Rs1 B ← Rs2 PC ← PC + 4 Lệnh được giải mã. Kế đĩ các thanh ghi Rs1 và Rs2 được đưa vào A và B.Thanh ghi PC được tăng lên để chỉ tới lệnh kế đĩ. ðể hiểu rõ giai đoạn này, ta lấy dạng thức của một lệnh làm tính tiêu biểu sau đây: Chương VII: Tổ chức Bộ xử lý 207 Các thanh ghi nguồn Rs1 và Rs2 được sử dụng tuỳ theo tác vụ, kết quả được đặt trong thanh ghi đích Rd. Ta thấy việc giải mã được thực hiện cùng lúc với việc đọc các thanh ghi Rs1 và Rs2 vì các thanh ghi này luơn nằm tại cùng vị trí ở trong lệnh. 3. Thi hành lệnh: Tuỳ theo loại lệnh mà một trong ba nhiệm vụ sau đây được thực hiện: - Liên hệ tới bộ nhớ MAR ← ðịa chỉ do ALU tính tuỳ theo kiểu định vị (Rs2). MDR ← Rs1 ðịa chỉ hiệu dụng do ALU tính được đưa vào MAR và thanh ghi nguồn Rs1 được đưa vào MDR để được lưu vào bộ nhớ trong. - Một lệnh của ALU Ngã ra ALU ← Kết quả của phép tính ALU thực hiện phép tính xác định trong mã lệnh, đưa kết quả ra ngã ra. - Một phép nhảy Ngã ra ALU ← ðịa chỉ lệnh tiếp theo do ALU tính. ALU cộng địa chỉ của PC với độ dời để làm thành địa chỉ đích và đưa địa chỉ này ra ngã ra. Nếu là một phép Chương VII: Tổ chức Bộ xử lý 208 nhảy cĩ điều kiện thì thanh ghi trạng thái được đọc quyết định cĩ cộng độ dời vào PC hay khơng. 4. Thâm nhập bộ nhớ trong hoặc nhảy lần cuối Giai đoạn này thường chỉ được dùng cho các lệnh nạp dữ liệu, lưu giữ dữ liệu và lệnh nhảy. - Tham khảo đến bộ nhớ: MDR ← M[MAR] hoặc M[MAR] ← MDR Số liệu được nạp vào MDR hoặc lưu vào địa chỉ mà MAR trỏ đến. - Nhảy: If (điều kiện), PC ← ngả ra ALU Nếu điều kiện đúng, ngã ra ALU được nạp vào PC. ðối với lệnh nhảy khơng điều kiện, ngả ra ALU luơn được nạp vào thanh ghi PC. 5. Lưu trữ kết quả Rd ← Ngã ra ALU hoặc Rd ← MDR Lưu trữ kết quả trong thanh ghi đích. 7.6. Xử lý ngắt (Interrupt Handling) Ngắt là một sự kiện xảy ra một cách ngẫu nhiên trong máy tính và làm ngưng tính tuần tự của chương trình (nghĩa là tạo ra một lệnh nhảy). Phần lớn các nhà sản xuất máy tính (ví dụ như IBM, INTEL) dùng từ ngắt quãng để ám chỉ sự kiện này, tuy nhiên Chương VII: Tổ chức Bộ xử lý 209 một số nhà sản xuất khác dùng từ “ngoại lệ”, “lỗi”, “bẫy” để chỉ định hiện tượng này. Bộ điều khiển của CPU là bộ phận khĩ thực hiện nhất và ngắt quãng là phần khĩ thực hiện nhất trong bộ điều khiển. ðể nhận biết được một ngắt quãng lúc đang thi hành một lệnh, ta phải biết điều chỉnh chu kỳ xung nhịp và điều này cĩ thể ảnh hưởng đến hiệu quả của máy tính. Người ta đã nghĩ ra “ngắt quãng” là để nhận biết các sai sĩt trong tính tốn số học, và để ứng dụng cho những hiện tượng thời gian thực. Bây giờ, ngắt quãng được dùng cho các cơng việc sau đây:  Ngoại vi địi hỏi nhập hoặc xuất số liệu.  Người lập trình muốn dùng dịch vụ của hệ điều hành.  Cho một chương trình chạy từng lệnh.  Làm điểm dừng của một chương trình.  Báo tràn số liệu trong tính tốn số học.  Trang bộ nhớ thực sự khơng cĩ trong bộ nhớ.  Báo vi phạm vùng cấm của bộ nhớ.  Báo dùng một lệnh khơng cĩ trong tập lệnh.  Báo phần cứng máy tính bị hư.  Báo điện bị cắt. Chương VII: Tổ chức Bộ xử lý 210 Dù rằng ngắt quãng khơng xảy ra thường xuyên nhưng bộ xử lý phải được thiết kế sao cho cĩ thể lưu giữ trạng thái của nĩ trước khi nhảy đi phục vụ ngắt quãng. Sau khi thực hiện xong chương trình phục vụ ngắt, bộ xử lý phải khơi phục trạng thái của nĩ để cĩ thể tiếp tục cơng việc. ðể đơn giản việc thiết kế, một vài bộ xử lý chỉ chấp nhận ngắt sau khi thực hiện xong lệnh đang chạy. Khi một ngắt xảy ra, bộ xử lý thi hành các bước sau đây: 1. Thực hiện xong lệnh đang làm. 2. Lưu trữ trạng thái hiện tại. 3. Nhảy đến chương trình phục vụ ngắt 4. Khi chương trình phục vụ chấm dứt, bộ xử lý khơi phục lại trạng thái cũ của nĩ và tiếp tục thực hiện chương trình mà nĩ đang thực hiện khi bị ngắt. Bảng 7.1 cho ta thấy thứ tự thực hiện các sự kiện khi xảy ra ngắt, ở đây t1

Các file đính kèm theo tài liệu này:

  • 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.
    Giáo trình kiến trúc máy tính I - Chương 7.pdf