Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chương 3: Bộ xử lý trung tâm

Similar presentations


Presentation on theme: "Chương 3: Bộ xử lý trung tâm"— Presentation transcript:

1 Chương 3: Bộ xử lý trung tâm
Cấu trúc máy tính Chương 3 BỘ XỬ LÝ TRUNG TÂM (CPU) 11/11/2018 Chương 3: Bộ xử lý trung tâm

2 Chương 3: Bộ xử lý trung tâm
Nội dung 3.1. Cấu trúc cơ bản của CPU 3.2. Tập lệnh 3.3. Hoạt động của CPU 3.4. Các kỹ thuật tiên tiến của bộ xử lý 3.5. Kiến trúc Intel 11/11/2018 Chương 3: Bộ xử lý trung tâm

3 Đơn vị nối ghép bus (BIU)
3.1 Cấu trúc cơ bản của CPU Chức năng : thực hiện chương trình lưu trong bộ nhớ chính bằng cách lấy lệnh ra - khảo sát - thực hiện lần lượt các lệnh. CPU gồm 1 số bộ phận tách biệt : Bộ điều khiển (Control Unit) lấy lệnh ra từ bộ nhớ và xác định kiểu lệnh. Bộ luận lý và số học (ALU) thực hiện phép toán số học và logic Các thanh ghi (Registers) : lưu kết quả tạm thời và các thông tin điều khiển. CPU giao tiếp với các bộ phận khác trong máy tính thông qua các tuyến gọi là Bus Đơn vị điều khiển (CU) số học và logic (ALU) Tập các Thanh ghi (RF) Đơn vị nối ghép bus (BIU) Bus bên trong Bus bên ngoài 11/11/2018 Chương 3: Bộ xử lý trung tâm

4 Đơn vị điều khiển (CU) Chức năng
Các cờ Clock Các tín hiệu yêu cầu từ bus hệ thống Thanh ghi lệnh Đơn vị điều khiển Bus điều khiển Các tín hiệu điều khiển bên trong CPU Các tín hiệu điều khiển đến bus hệ thống Chức năng Điều khiển nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh Tăng nội dung của PC để trỏ sang lệnh kế tiếp Giải mã lệnh đã được nhận để xác định thao tác mà lệnh yêu cầu Phát ra các tín hiệu điều khiển thực hiện lệnh Nhận các tín hiệu yêu cầu từ bus hệ thống và đáp ứng với các yêu cầu đó. 11/11/2018 Chương 3: Bộ xử lý trung tâm

5 Đơn vị điều khiển (CU) Các cờ Clock Các tín hiệu yêu cầu từ bus hệ thống Thanh ghi lệnh Đơn vị điều khiển Bus điều khiển Các tín hiệu điều khiển bên trong CPU Các tín hiệu điều khiển đến bus hệ thống Clock: tín hiệu nhịp từ mạch tạo dao động bên ngoài. Mã lệnh từ thanh ghi lệnh đưa đến để giải mã. Các cờ từ thanh ghi cờ cho biết trạng thái của CPU. Các tín hiệu yêu cầu từ bus điều khiển Các tín hiệu điều khiển bên trong CPU: Điều khiển các thanh ghi Điều khiển ALU Các tín hiệu điều khiển bên ngoài CPU: Điều khiển bộ nhớ Điều khiển các mô-đun vào-ra 11/11/2018 Chương 3: Bộ xử lý trung tâm

6 Đơn vị số học và logic Chức năng: Thực hiện các phép toán số học và phép toán logic. Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu. Logic: AND, OR, XOR, NOT, phép dịch bit. Đơn vị số học và logic (ALU) Thanh ghi cờ Các tín hiệu từ đơn vị điều khiển Dữ liệu vào từ các thanh ghi Dữ liệu ra từ các thanh ghi 11/11/2018 Chương 3: Bộ xử lý trung tâm

7 Chương 3: Bộ xử lý trung tâm
Cổng logic căn bản 1. Cổng NOT Còn gọi là cổng đảo (Inverter), dùng để thực hiện hàm đảo Y= A Ký hiệu mũi tên chỉ chiều di chuyển của tín hiệu và vòng tròn là ký hiệu đảo. A Y 1 A Y 11/11/2018 Chương 3: Bộ xử lý trung tâm

8 Chương 3: Bộ xử lý trung tâm
Cổng AND Dùng thực hiện hàm AND 2 hay nhiều biến. Cổng AND có số ngã vào tùy thuộc số biến và một ngã ra. Ngã ra của cổng là hàm AND của các biến ngã vào. Nhận xét: Ngã ra cổng AND chỉ ở mức cao khi tất cả ngã vào lên cao. Khi có một ngã vào = 0, ngã ra = 0 bất chấp các ngã vào còn lại. Khi có một ngã vào =1, ngã ra = AND của các ngã vào còn lại. A B Y 1 A B Y=A.B 11/11/2018 Chương 3: Bộ xử lý trung tâm

9 Chương 3: Bộ xử lý trung tâm
Cổng OR Dùng để thực hiện hàm OR 2 hay nhiều biến. Cổng OR có số ngã vào tùy thuộc số biến và một ngã ra. Nhận xét: Ngã ra cổng OR chỉ ở mức thấp khi cả 2 ngã vào xuống thấp. Khi có một ngã vào =1, ngã ra = 1 bất chấp ngã vào còn lại. Khi có một ngã vào =0, ngã ra = OR các ngã vào còn lại. A B Y 1 A B Y=A+B 11/11/2018 Chương 3: Bộ xử lý trung tâm

10 Chương 3: Bộ xử lý trung tâm
Cổng NAND Là kết hợp của cổng AND và cổng NOT, thực hiện hàm Y = A.B Ký hiệu của cổng NAND (Gồm AND và NOT, cổng NOT thu gọn lại một vòng tròn) Tương tự như cổng AND, ở cổng NAND ta có thể dùng 1 ngã vào làm ngã kiểm soát. Khi ngã kiểm soát = 1, cổng mở cho phép tín hiệu logic ở ngã vào còn lại qua cổng và bị đảo, khi ngã kiểm soát = 0, cổng đóng, ngã ra luôn bằng 1. Khi nối tất cả ngã vào của cổng NAND lại với nhau, nó hoạt động như một cổng đảo A B Y 1 A B Y=A.B 11/11/2018 Chương 3: Bộ xử lý trung tâm

11 Chương 3: Bộ xử lý trung tâm
Cổng NOR Là kết hợp của cổng OR và cổng NOT Ký hiệu của cổng NOR (Gồm cổng OR và NOT, nhưng cổng NOT thu gọn lại một vòng tròn) A B Y 1 A B Y=A+B 11/11/2018 Chương 3: Bộ xử lý trung tâm

12 Chương 3: Bộ xử lý trung tâm
Ví dụ A B X C D A B C D X 1 11/11/2018 Chương 3: Bộ xử lý trung tâm

13 Chương 3: Bộ xử lý trung tâm
Tập thanh ghi Chức năng và đặc điểm: Chứa các thông tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPU Được coi là mức đầu tiên của hệ thống nhớ Số lượng thanh ghi nhiều  tăng hiệu năng của CPU Có hai loại thanh ghi: Các thanh ghi lập trình được Các thanh ghi không lập trình được 11/11/2018 Chương 3: Bộ xử lý trung tâm

14 Chương 3: Bộ xử lý trung tâm
Phân loại thanh ghi Thanh ghi tổng quát : chủ yếu dùng để lưu trữ dữ liệu trong quá trình thực thi CT, nhưng mỗi thanh ghi còn có 1 số chức năng riêng (AX, BX, CX, DX) Thanh ghi điều khiển : các bit của nó qui định tác vụ của các đơn vị chức năng của MT. Thanh ghi trạng thái : lưu trữ thông tin mô tả trạng thái. 11/11/2018 Chương 3: Bộ xử lý trung tâm

15 Một số thanh ghi điển hình
Các thanh ghi địa chỉ Bộ đếm chương trình PC (Program Counter) Con trỏ dữ liệu DP (Data Pointer) Con trỏ ngăn xếp SP (Stack Pointer) Thanh ghi cơ sở và thanh ghi chỉ số (Base Register & Index Register) Các thanh ghi dữ liệu Thanh ghi trạng thái 11/11/2018 Chương 3: Bộ xử lý trung tâm

16 Chương 3: Bộ xử lý trung tâm
Bộ đếm chương trình PC Còn được gọi là con trỏ lệnh IP (Instruction Pointer) Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vào. Sau khi một lệnh được nhận vào, nội dung PC tự động tăng để trỏ sang lệnh kế tiếp. CPU Lệnh Lệnh i Lệnh i+1 PC 202 IR 11/11/2018 Chương 3: Bộ xử lý trung tâm

17 Thanh ghi con trỏ dữ liệu
Chứa địa chỉ của ngăn nhớ dữ liệu mà CPU muốn truy nhập Thường có một số thanh ghi con trỏ dữ liệu Dữ liệu Dữ liệu cần đọc/ghi DP 11/11/2018 Chương 3: Bộ xử lý trung tâm

18 Chương 3: Bộ xử lý trung tâm
Ngăn xếp (Stack) Ngăn xếp là vùng nhớ có cấu trúc LIFO (Last In - First Out) Ngăn xếp thường dùng để phục vụ cho chương trình con Đáy ngăn xếp là một ngăn nhớ xác định Đỉnh ngăn xếp là thông tin nằm ở vị trí trên cùng trong ngăn xếp Đỉnh ngăn xếp có thể bị thay đổi Đỉnh ngăn xếp Đáy Ngăn xếp 11/11/2018 Chương 3: Bộ xử lý trung tâm

19 Con trỏ ngăn xếp SP (Stack Pointer)
Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp Khi cất một thông tin vào ngăn xếp: Nội dung của SP tự động giảm Thông tin được cất vào ngăn nhớ được trỏ bởi SP Khi lấy một thông tin ra khỏi ngăn xếp: Thông tin được đọc từ ngăn nhớ được trỏ bởi SP Nội dung của SP tự động tăng Khi ngăn xếp rỗng, SP trỏ vào đáy Đỉnh ngăn xếp Đáy Ngăn xếp SP 11/11/2018 Chương 3: Bộ xử lý trung tâm

20 Thanh ghi cơ sở và thanh ghi chỉ số
Thanh ghi cơ sở: chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở) Thanh ghi chỉ số: chứa độ lệch địa chỉ giữa ngăn nhớ mà CPU cần truy nhập so với ngăn nhớ cơ sở (chỉ số) Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở + chỉ số Ngăn nhớ cơ sở Ngăn nhớ cần truy cập Thanh ghi cơ sở Thanh ghi chỉ số 11/11/2018 Chương 3: Bộ xử lý trung tâm

21 Chương 3: Bộ xử lý trung tâm
Các thanh ghi dữ liệu 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 AH AL Chứa các dữ liệu tạm thời hoặc các kết quả trung gian Cần có nhiều thanh ghi dữ liệu Các thanh ghi số nguyên: 8, 16, 32, 64 bit Các thanh ghi số dấu phẩy động Thanh ghi AX (Accumulator register) : thanh ghi tích luỹ, dài 16 bit nhưng nó cũng có thể chia làm 2 thanh ghi 8 bit AH và AL. AX ngoài chức năng lưu trữ dữ liệu, nó còn được CPU dùng trong phép toán số học như nhân, chia. Thanh ghi AH là nửa cao của thanh ghi AX Thanh ghi AL là nửa thấp của thanh ghi AX Thí dụ nếu AX=1234h thì AH=12h AL=34h 11/11/2018 Chương 3: Bộ xử lý trung tâm

22 Chương 3: Bộ xử lý trung tâm
Các thanh ghi dữ liệu Thanh ghi BX (Base register) : dài 16 bit nhưng nó cũng có thể chia làm 2 thanh ghi 8 bit BH và BL. BX lưu giữ địa chỉ của 1 thủ tục hay biến, nó cũng được dùng thực hiện các phép dời chuyển số học và dữ liệu. Thanh ghi DX (Data register) : dài 16 bit nhưng nó cũng có thể chia làm 2 thanh ghi 8 bit DH và DL. Thanh ghi DX : có vai trò đặc biệt trong phép nhân và phép chia ngoài chức năng lưu trữ dữ liệu. CX (Counter register) : thanh ghi này dùng làm bộ đếm trong các vòng lặp. Các lệnh tự động lặp lại và sau mỗi lần lặp giá trị của CX tự động giảm đi 1. CL thường chứa số lần dịch, quay trong các lệnh dịch, quay thanh ghi. CX dài 16 bit, nó cũng có thể chia làm 2 thanh ghi 8 bit là CH và CL 11/11/2018 Chương 3: Bộ xử lý trung tâm

23 Thanh ghi trạng thái(thanh ghi cờ)
O D I T S Z A P C O: OverFlow flag D : Direction flag I : Interrupt flag T : Trap flag S : Sign flag Z : Zero flag A : Auxiliary flag P : Parity flag C : Carry flag Thanh ghi cờ là thanh ghi 16 bit nằm trong EU (Excution Unit). Tuy nhiên chỉ có 9 trong 16 bit được dùng còn lại 7 bit không dùng Chứa các thông tin trạng thái của CPU Các cờ phép toán: báo hiệu trạng thái của kết quả phép toán Các cờ điều khiển: biểu thị trạng thái điều khiển của CPU 11/11/2018 Chương 3: Bộ xử lý trung tâm

24 Thanh ghi trạng thái(thanh ghi cờ)
Cờ ZF: được thiết lập lên 1 khi kết quả của phép toán bằng 0. Cờ SF (cờ dấu): được thiết lập lên 1 khi kết quả phép toán nhỏ hơn 0 Cờ CF (cờ nhớ): được thiết lập lên 1 nếu phép toán có nhớ ra ngoài bit cao nhất  cờ báo tràn với số không dấu. Cờ IF (Cờ cho phép ngắt): Nếu IF = 1  CPU ở trạng thái cho phép ngắt với tín hiệu yêu cầu ngắt từ bên ngoài gửi tới Nếu IF = 0  CPU ở trạng thái cấm ngắt với tín hiệu yêu cầu ngắt từ bên ngoài gửi tới 11/11/2018 Chương 3: Bộ xử lý trung tâm

25 Thanh ghi trạng thái(thanh ghi cờ)
Cờ OF (cờ tràn): OF=1 khi kết quả bị tràn số (vượt qua khả năng lưu trữ), OF=0 kết quả không bị tràn Cờ DF: xác định hướng theo chiều tăng/ giảm trong xử lý chuổi Cờ PF: PF=1 khi kết quả có số bit 1 là chẳn và ngược lại Cờ AF: Có nhớ trong phép cộng và có mượn trong phép trừ với 4 bit thấp sang 4 bit cao Cờ TF: báo cho CPU thi hành từng bước, cung cấp công cụ debug chương trình 11/11/2018 Chương 3: Bộ xử lý trung tâm

26 Chương 3: Bộ xử lý trung tâm
Các thanh ghi Segment CPU có 4 thanh ghi segment dài 16 bit, các thanh ghi này không thể chia làm 2 thanh ghi 8 bit như 4 thanh ghi AX,BX,CX và DX. Các thanh ghi đoạn được sử dụng như là địa chỉ cơ sở của các lệnh trong chương trình, stack và dữ liệu. 4 thanh ghi đoạn : CS (Code Segment), DS (Data Segment), SS (Stack Segment) và ES (Extra Segment). CS : chứa địa chỉ bắt đầu của code trong chương trình DS : chứa địa chỉ của các biến khai báo trong chương trình SS : chứa địa chỉ của bộ nhớ Stack dùng trong chương trình ES : chứa địa chỉ cơ sở bổ sung cho các biến bộ nhớ 11/11/2018 Chương 3: Bộ xử lý trung tâm

27 Chương 3: Bộ xử lý trung tâm
Thanh ghi 32 bit Đối với một số CPU đời mới, có các thanh ghi dài 32, 64 bit. Ta ghi thêm E đứng trước tên các thanh ghi 16 bit... EAX, EBX, ECX, EDX .... 11/11/2018 Chương 3: Bộ xử lý trung tâm

28 Thanh ghi đoạn và sự hình thành địa chỉ
8086 sử dụng 20 bit để đánh địa chỉ bộ nhớ  quản lý trên 1MB bộ nhớ. Nhưng 8086 lại không có thanh ghi nào 20 bit, tất cả là 16 bit do đó 1 thanh ghi chỉ có thể đánh địa chỉ tối đa là 64 KB bộ nhớ. Như vậy phải kết hợp 2 thanh ghi mới địa chỉ hoá toàn bộ bộ nhớ sử 1 trong các thanh ghi dùng chung và 1 trong các thanh ghi đoạn (CS,DS,SS,ES) để tạo thành 1 địa chỉ 20 bit. Địa chỉ 20 bit của bộ nhớ 1MB không thể chứa đủ trong các thanh ghi 16 bit của CPU 8086  bộ nhớ 1MB được chia ra thành các đoạn (segment) 64KB. Địa chỉ trong các đọan 64KB chỉ có 16 bit nên CPU 8086 dễ dàng xử lý bằng các thanh ghi của nó.  PHÂN ĐOẠN BỘ NHỚ : là cách dùng các thanh ghi 16 bit để biểu diễn cho địa chỉ 20 bit. 11/11/2018 Chương 3: Bộ xử lý trung tâm

29 Địa chỉ vật lý & địa chỉ luận lý
Địa chỉ 20 bits được gọi là địa chỉ vật lý. Địa chỉ vật lý dùng trong thiết kế các mạch giải mã địa chỉ cho bộ nhớ và xuất nhập. Còn trong lập trình , địa chỉ vật lý không thể dùng được mà nó được thay thế bằng địa chỉ luận lý (logic). 11/11/2018 Chương 3: Bộ xử lý trung tâm

30 Chương 3: Bộ xử lý trung tâm
Địa chỉ luận lý Địa chỉ của 1 ô nhớ được xác định bởi 2 phần: Segment : offset Segment: địa chỉ đoạn Offset: địa chỉ trong đoạn (độ dời) Mỗi địa chỉ thành phần là 1 số 16 bit và được viết theo cách sau : Segment : offset VD : B001:1235 11/11/2018 Chương 3: Bộ xử lý trung tâm

31 Chương 3: Bộ xử lý trung tâm
Sự hình thành địa chỉ Hãng Intel đề xuất 1 phương pháp để hình thành địa chỉ Mỗi địa chỉ ô nhớ được hình thành từ 1 phép tính tổng 1 địa chỉ cơ sở và 1 địa chỉ offset Địa chỉ cơ sở lưu trong 1 thanh ghi segment, còn địa chỉ offset nằm trong 1 thanh ghi chỉ số hay thanh ghi con trỏ Phép cộng này sẽ tạo 1 địa chỉ 20 bit gọi là địa chỉ vật lý 11/11/2018 Chương 3: Bộ xử lý trung tâm

32 Cách tính địa chỉ vật lý từ địa chỉ luận lý
Địa chỉ vật lý = (segment*10h) + offset VD : tính địa chỉ vật lý tương ứng địa chỉ luận lý B001:1235 Địa chỉ vật lý = B0010h h = B1245h 11/11/2018 Chương 3: Bộ xử lý trung tâm

33 Chương 3: Bộ xử lý trung tâm
Sự chồng chất các đoạn Địa chỉ segment hay còn gọi là địa chỉ nền của đoạn. Nó cho biết điểm bắt đầu của đoạn trong bộ nhớ. Địa chỉ offset thể hiện khoảng cách kể từ đầu đọan của ô nhớ cần tham khảo. Do offset dài 16 bit nên chiều dài tối đa của mỗi đọan là 64K. Mỗi ô nhớ chỉ có địa chỉ vật lý nhưng có thể có nhiều địa chỉ luận lý. VD : 1234:1234 1334:0234 1304: Đều có chung địa chỉ vật lý ?? 11/11/2018 Chương 3: Bộ xử lý trung tâm

34 Chương 3: Bộ xử lý trung tâm
Sự chồng chất các đoạn Bộ nhớ segment 0000 offset 64KB Ô nhớ có địa chỉ segment:offset FFFF 11/11/2018 Chương 3: Bộ xử lý trung tâm

35 Chương 3: Bộ xử lý trung tâm
Sự chồng chất các đoạn Khi offset tăng 1 đơn vị thì địa chỉ vật lý tăng 1 địa chỉ hoặc là tăng 1 byte. Như vậy có thể xem đơn vị của offset là byte Khi giữ nguyên phần offset chỉ tăng phần segment. Khi segment tăng 1 đơn vị thì địa chỉ vật lý tăng 10h địa chỉ hoặc là tăng 16 bytes VD : ô nhớ có địa chỉ 0002Ah sẽ có địa chỉ logic trong segment 0000 là 0000:002A Trong segment 0001 là 0001:001A Trong segment 0002 là 0002:000A 11/11/2018 Chương 3: Bộ xử lý trung tâm

36 Chương 3: Bộ xử lý trung tâm
Sự chồng chất các đoạn Nếu vùng bộ nhớ nào càng có nhiều segment chồng chập lên nhau thì các ô nhớ trong đó càng có nhiều địa chỉ luận lý. Một ô nhớ có ít nhất 1 địa chỉ luận lý và nhiều nhất là 65536/16 = 4096 địa chỉ luận lý 11/11/2018 Chương 3: Bộ xử lý trung tâm

37 Chương 3: Bộ xử lý trung tâm
3.2. Tập lệnh Giới thiệu chung về tập lệnh Mỗi bộ xử lý có một tập lệnh xác định Tập lệnh thường có hàng chục đến hàng trăm lệnh Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý hiểu được để thực hiện một thao tác xác định Các lệnh được mô tả bằng các ký hiệu gợi nhớ  chính là các lệnh của hợp ngữ 11/11/2018 Chương 3: Bộ xử lý trung tâm

38 Các thành phần của lệnh máy
Mã thao tác Địa chỉ của các toán hạng Mã thao tác (operation code  opcode): mã hóa cho thao tác mà bộ xử lý phải thực hiện Địa chỉ toán hạng: chỉ ra nơi chứa các toán hạng mà thao tác sẽ tác động Toán hạng nguồn: dữ liệu vào của thao tác Toán hạng đích: dữ liệu ra của thao tác 11/11/2018 Chương 3: Bộ xử lý trung tâm

39 Số lượng địa chỉ toán hạng trong lệnh
Ba địa chỉ toán hạng: 2 toán hạng nguồn, 1 toán hạng đích c = a + b Từ lệnh dài vì phải mã hoá địa chỉ cho cả ba toán hạng Được sử dụng trên các bộ xử lý tiên tiến Hai địa chỉ toán hạng: Một toán hạng vừa là toán hạng nguồn vừa là toán hạng đích; toán hạng còn lại là toán hạng nguồn a = a + b Giá trị cũ của 1 toán hạng nguồn bị mất vì phải chứa kết quả Rút gọn độ dài từ lệnh Phổ biến 11/11/2018 Chương 3: Bộ xử lý trung tâm

40 Số lượng địa chỉ toán hạng trong lệnh
Một địa chỉ toán hạng: Một toán hạng được chỉ ra trong lệnh Một toán hạng là ngầm định  thường là thanh ghi (thanh chứa –accumulator) Được sử dụng trên các máy ở các thế hệ trước 0 địa chỉ toán hạng: Các toán hạng đều được ngầm định. Sử dụng Stack. Ví dụ push a push b add pop c có nghĩa là : c = a+b. không thông dụng 11/11/2018 Chương 3: Bộ xử lý trung tâm

41 Đánh giá về số địa chỉ toán hạng
Nhiều địa chỉ toán hạng Các lệnh phức tạp hơn Cần nhiều thanh ghi Chương trình có ít lệnh hơn Nhận lệnh và thực hiện lệnh chậm hơn Ít địa chỉ toán hạng Các lệnh đơn giản hơn Cần ít thanh ghi Chương trình có nhiều lệnh hơn Nhận lệnh và thực hiện lệnh nhanh hơn 11/11/2018 Chương 3: Bộ xử lý trung tâm

42 Chương 3: Bộ xử lý trung tâm
Các lệnh chuyển dữ liệu MOVE Copy dữ liệu từ nguồn đến đích LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ EXCHANGE Trao đổi nội dung của nguồn và đích CLEAR Chuyển các bit 0 vào toán hạng đích SET Chuyển các bit 1 vào toán hạng đích PUSH Cất nội dung toán hạng nguồn vào ngăn xếp POP Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng đích 11/11/2018 Chương 3: Bộ xử lý trung tâm

43 Chương 3: Bộ xử lý trung tâm
Các lệnh số học ADD Cộng hai toán hạng SUBTRACT Trừ hai toán hạng MULTIPLY Nhân hai toán hạng DIVIDE Chia hai toán hạng ABSOLUTE Lấy trị tuyệt đối toán hạng NEGATE Đổi dấu toán hạng (lấy bù 2) INCREMENT Tăng toán hạng thêm 1 DECREMENT Giảm toán hạng đi 1 COMPARE Trừ hai toán hạng để lập cờ 11/11/2018 Chương 3: Bộ xử lý trung tâm

44 Chương 3: Bộ xử lý trung tâm
Các lệnh logic AND Thực hiện phép AND hai toán hạng OR Thực hiện phép OR hai toán hạng XOR Thực hiện phép XOR hai toán hạng NOT Đảo bit của toán hạng (lấy bù 1) TEST Thực hiện phép AND hai toán hạng để lập cờ SHIFT Dịch trái (phải) toán hạng ROTATE Quay trái (phải) toán hạng 11/11/2018 Chương 3: Bộ xử lý trung tâm

45 Các lệnh vào ra chuyên dụng
INPUT Copy dữ liệu từ một cổng xác định đưa đến đích OUTPUT Copy dữ liệu từ nguồn đến một cổng xác định 11/11/2018 Chương 3: Bộ xử lý trung tâm

46 Các lệnh chuyển điều khiển
JUMP (BRANCH) Lệnh nhảy không điều kiện: nạp vào PC một địa chỉ xác định JUMP CONDITIONAL Lệnh nhảy có điều kiện: điều kiện đúng  nạp vào PC một địa chỉ xác định điều kiện sai  không làm gì cả CALL Lệnh gọi chương trình con: Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác định (thường ở Stack) Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con RETURN Lệnh trở về từ chương trình con: Khôi phục địa chỉ trở về trả lại cho PC để trở về chương trình chính 11/11/2018 Chương 3: Bộ xử lý trung tâm

47 Các lệnh điều khiển hệ thống
HALT Dừng thực hiện chương trình WAIT Tạm dừng thực hiện chương trình, lặp kiểm tra điều kiện cho đến khi thoả mãn thì tiếp tục thực hiện NO OPERATION Không thực hiện gì cả LOCK Cấm không cho xin chuyển nhượng bus UNLOCK Cho phép xin chuyển nhượng bus 11/11/2018 Chương 3: Bộ xử lý trung tâm

48 Chương 3: Bộ xử lý trung tâm
3.3. Hoạt động của CPU Chu trình lệnh Nhận lệnh Giải mã lệnh Nhận toán hạng Thực hiện lệnh Cất toán hạng Ngắt 11/11/2018 Chương 3: Bộ xử lý trung tâm

49 Chương 3: Bộ xử lý trung tâm
Nhận lệnh CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trình PC ra bus địa chỉ CPU phát tín hiệu điều khiển đọc bộ nhớ Lệnh từ bộ nhớ được đặt lên bus dữ liệu và được CPU copy vào thanh ghi lệnh IR CPU tăng nội dung PC để trỏ sang lệnh kế tiếp CPU PC Bộ nhớ Đơn vị điều khiển IR Bus Địa chỉ Bus Dữ liệu Bus Điểu khiển 11/11/2018 Chương 3: Bộ xử lý trung tâm

50 Chương 3: Bộ xử lý trung tâm
Giải mã lệnh Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển Đơn vị điều khiển tiến hành giải mã lệnh để xác định thao tác phải thực hiện Giải mã lệnh xảy ra bên trong CPU 11/11/2018 Chương 3: Bộ xử lý trung tâm

51 Chương 3: Bộ xử lý trung tâm
Nhận dữ liệu CPU đưa địa chỉ của toán hạng ra bus địa chỉ CPU phát tín hiệu điều khiển đọc Toán hạng được đọc vào CPU Tương tự như nhận lệnh 11/11/2018 Chương 3: Bộ xử lý trung tâm

52 Chương 3: Bộ xử lý trung tâm
Nhận dữ liệu gián tiếp CPU đưa địa chỉ ra bus địa chỉ CPU phát tín hiệu điều khiển đọc Nội dung ngăn nhớ được đọc vào CPU, đó chính là địa chỉ của toán hạng Địa chỉ này được CPU phát ra bus địa chỉ để tìm ra toán hạng Toán hạng được đọc vào CPU 11/11/2018 Chương 3: Bộ xử lý trung tâm

53 Chương 3: Bộ xử lý trung tâm
Thực hiện lệnh Có nhiều dạng tuỳ thuộc vào lệnh Có thể là: Đọc/Ghi bộ nhớ Vào/Ra Chuyển giữa các thanh ghi Thao tác số học/logic Chuyển điều khiển (rẽ nhánh) 11/11/2018 Chương 3: Bộ xử lý trung tâm

54 Chương 3: Bộ xử lý trung tâm
Ghi toán hạng CPU đưa địa chỉ ra bus địa chỉ CPU đưa dữ liệu cần ghi ra bus dữ liệu CPU phát tín hiệu điều khiển ghi Dữ liệu trên bus dữ liệu được copy đến vị trí xác định CPU MAR Bộ nhớ Đơn vị điều khiển MBR Bus Địa chỉ Bus Dữ liệu Bus Điểu khiển MAR: Thanh ghi địa chỉ bộ nhớ MBR: Thanh ghi đệm bộ nhớ 11/11/2018 Chương 3: Bộ xử lý trung tâm

55 Chương 3: Bộ xử lý trung tâm
Nội dung của bộ đếm chương trình PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ CPU phát tín hiệu điều khiển ghi bộ nhớ Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí xác định (ở ngăn xếp) Địa chỉ lệnh đầu tiên của chương trình con điều khiển ngắt được nạp vào PC 11/11/2018 Chương 3: Bộ xử lý trung tâm

56 Đường ống lệnh (Instruction Pipelining)
Chia chu trình lệnh thành các công đoạn và cho phép thực hiện gối lên nhau (như dây chuyền lắp ráp) Chẳng hạn có 6 công đoạn: Nhận lệnh (Fetch Instruction - FI) Giải mã lệnh (Decode Instruction - DI) Tính địa chỉ toán hạng (Calculate Operand Address - CO) Nhận toán hạng (Fetch Operands - FO) Thực hiện lệnh (Execute Instruction - EI) Ghi toán hạng (Write Operands - WO) 11/11/2018 Chương 3: Bộ xử lý trung tâm

57 Biểu đồ thời gian của đường ống lệnh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 FI DI CO FO EI WO Lệnh 1 Lệnh 2 Lệnh 3 Lệnh 4 Lệnh 5 Lệnh 6 Lệnh 7 Lệnh 8 11/11/2018 Chương 3: Bộ xử lý trung tâm

58 Các vấn đề của đường ống lệnh
Vấn đề cấu trúc: do nhiều công đoạn dùng chung một tài nguyên Vấn đề dữ liệu: lệnh sau sử dụng dữ liệu kết quả của lệnh trước Vấn đề điều khiển: do rẽ nhánh gây ra 11/11/2018 Chương 3: Bộ xử lý trung tâm

59 Các kiến trúc song song mức lệnh
Siêu đường ống (Superpipeline & Hyperpipeline) Siêu vô hướng (Superscalar) VLIW (Very Long Instruction Word) 11/11/2018 Chương 3: Bộ xử lý trung tâm

60 Chương 3: Bộ xử lý trung tâm
Superpipeline IF: Instruction Fetch, first falf IS: Instruction Fetch, second half RF: register fetch EX: Execution DF: Data fetch, first half DS: data fetch, second half TC: Tag check WB: write back 11/11/2018 Chương 3: Bộ xử lý trung tâm

61 Chương 3: Bộ xử lý trung tâm
Superscalar Lệnh 1 Lệnh 2 Lệnh 3 Lệnh 4 Lệnh 5 Lệnh 6 FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO - Thực hiện nhiều lệnh trong cùng 1 chu kỳ clock 11/11/2018 Chương 3: Bộ xử lý trung tâm

62 Chương 3: Bộ xử lý trung tâm
CISC và RISC CISC  Complex Instruction Set Computer: Máy tính với tập lệnh phức tạp Các bộ xử lý truyền thống: x86, 680x0 RISC  Reduced Instruction Set Computer: Máy tính với tập lệnh thu gọn SunSPARC, Power PC, ... RISC đối nghịch với CISC 11/11/2018 Chương 3: Bộ xử lý trung tâm

63 Chương 3: Bộ xử lý trung tâm
Các đặc trưng của RISC Số lượng lệnh ít Hầu hết các lệnh truy nhập toán hạng ở các thanh ghi Truy nhập bộ nhớ bằng các lệnh LOAD/STORE Thời gian thực hiện lệnh là một chu kỳ máy Các lệnh có độ dài cố định (32 bit) Số lượng khuôn dạng lệnh là ít (<=4) CPU có tập thanh ghi lớn Có ít mode địa chỉ (<=4) Hỗ trợ các thao tác của ngôn ngữ bậc cao Đều được thiết kế kiểu pipeline lệnh 11/11/2018 Chương 3: Bộ xử lý trung tâm

64 Chương 3: Bộ xử lý trung tâm
3.5. Kiến trúc Intel Kiến trúc 4-bit: 4004 Kiến trúc 8-bit: 8008,8080,8085 Kiến trúc 16-bit: 8086/8088,80186,80286 Kiến trúc 32-bit: 80386, 80486, Pentium,Pentium II, Celeron, Pentium III, Pentium 4 Kiến trúc 64-bit: Itanium 11/11/2018 Chương 3: Bộ xử lý trung tâm

65 Chương 3: Bộ xử lý trung tâm
Kiến trúc 16-bit (IA-16) Các thanh ghi bên trong: 16-bit Xử lý các phép toán số nguyên với 16-bit Quản lý bộ nhớ theo đoạn 64KBytes Mở đầu cho dòng máy tính IBM-PC 11/11/2018 Chương 3: Bộ xử lý trung tâm

66 Chương 3: Bộ xử lý trung tâm
Kiến trúc 32-bit (IA-32) Các thanh ghi bên trong: 32-bit Xử lý các phép toán số nguyên với 32-bit Có ba chế độ làm việc: Chế độ 8086 thực (Real 8086 mode): làm việc như một bộ xử lý 8086 Chế độ 8086 ảo (Virtual 8086 mode): làm việc như nhiều bộ xử lý 8086 (đa nhiệm 16-bit) Chế độ bảo vệ (Protected mode) đa nhiệm 32-bit quản lý bộ nhớ ảo Xử lý các phép toán số dấu phẩy động (từ 80486) 11/11/2018 Chương 3: Bộ xử lý trung tâm

67 Chương 3: Bộ xử lý trung tâm
Kiến trúc 64-bit (IA-64) Các thanh ghi bên trong: 64-bit Xử lý các phép toán số nguyên với 64-bit Xử lý các phép toán số dấu phẩy động Không tương thích phần cứng với các bộ xử lý trước đó Tương thích phần mềm bằng cách giả lập môi trường 11/11/2018 Chương 3: Bộ xử lý trung tâm

68 Chương 3: Bộ xử lý trung tâm
Hết chương 3 11/11/2018 Chương 3: Bộ xử lý trung tâm


Download ppt "Chương 3: Bộ xử lý trung tâm"

Similar presentations


Ads by Google