Chương 3: Bộ xử lý trung tâm (CPU)
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
68 trang |
Chia sẻ: phuongt97 | Lượt xem: 679 | Lượt tải: 1
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Cấu trúc máy tính - Chương 3: Bộ xử lý trung tâm (CPU) - Đào Quốc Phương, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Cấu trúc máy tínhChương 3BỘ XỬ LÝ TRUNG TÂM (CPU)8/12/20211Chương 3: Bộ xử lý trung tâmNội dung3.1. Cấu trúc cơ bản của CPU3.2. Tập lệnh3.3. Hoạt động của CPU3.4. Các kỹ thuật tiên tiến của bộ xử lý3.5. Kiến trúc Intel8/12/20212Chương 3: Bộ xử lý trung tâm3.1 Cấu trúc cơ bản của CPUCPU 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à logicCá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)Đơn vị số học và logic(ALU)Tập các Thanh ghi (RF)Đơn vị nối ghép bus (BIU)Bus bên trongBus bên ngoàiChứ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.8/12/20213Chương 3: Bộ xử lý trung tâmĐơn vị điều khiển (CU)Chức năngĐiều khiển nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnhTăng nội dung của PC để trỏ sang lệnh kế tiếpGiải mã lệnh đã được nhận để xác định thao tác mà lệnh yêu cầuPhát ra các tín hiệu điều khiển thực hiện lệnhNhậ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 đó.Các cờClockCác tín hiệu yêu cầu từ bus hệ thốngThanh ghi lệnhĐơn vị điều khiểnBus điều khiểnCác tín hiệu điều khiển bên trong CPUCác tín hiệu điều khiển đến bus hệ thống 8/12/20214Chương 3: Bộ xử lý trung tâmĐơn vị điều khiển (CU)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ểnCá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 ALUCá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-raCác cờClockCác tín hiệu yêu cầu từ bus hệ thốngThanh ghi lệnhĐơn vị điều khiểnBus điều khiểnCác tín hiệu điều khiển bên trong CPUCác tín hiệu điều khiển đến bus hệ thống 8/12/20215Chương 3: Bộ xử lý trung tâmĐơn vị số học và logicChứ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ểnDữ liệu vào từ các thanh ghiDữ liệu ra từ các thanh ghi8/12/20216Chương 3: Bộ xử lý trung tâmCổng logic căn bản1. 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. AYAY01108/12/20217Chương 3: Bộ xử lý trung tâmCổng ANDDù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.ABY=A.BABY0000101001118/12/20218Chương 3: Bộ xử lý trung tâmCổng ORDù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. ABY000011101111ABY=A+B8/12/20219Chương 3: Bộ xử lý trung tâmCổng NAND Là kết hợp của cổng AND và cổng NOT, thực hiện hàm Y = A.BKý 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 đảoABY=A.BABY0010111011108/12/202110Chương 3: Bộ xử lý trung tâmCổng NOR Là kết hợp của cổng OR và cổng NOTKý 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)ABY001010100110ABY=A+B8/12/202111Chương 3: Bộ xử lý trung tâmVí dụABCDXABCDX000100111110101101118/12/202112Chương 3: Bộ xử lý trung tâmTập thanh ghiChứ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 CPUCó hai loại thanh ghi:Các thanh ghi lập trình đượcCác thanh ghi không lập trình được8/12/202113Chương 3: Bộ xử lý trung tâmPhân loại thanh ghiThanh 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.8/12/202114Chương 3: Bộ xử lý trung tâmMột số thanh ghi điển hìnhCá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ệuThanh ghi trạng thái8/12/202115Chương 3: Bộ xử lý trung tâmBộ đếm chương trình PCCò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.202CPUPCIRLệnhLệnhLệnh iLệnh i+1Lệnh8/12/202116Chương 3: Bộ xử lý trung tâmThanh ghi con trỏ dữ liệuChứa địa chỉ của ngăn nhớ dữ liệu mà CPU muốn truy nhậpThường có một số thanh ghi con trỏ dữ liệuDPDữ liệuDữ liệuDữ liệu cần đọc/ghiDữ liệuDữ liệu8/12/202117Chương 3: Bộ xử lý trung tâmNgă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ếp8/12/202118Chương 3: Bộ xử lý trung tâmCon trỏ ngăn xếp SP (Stack Pointer)Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếpKhi cất một thông tin vào ngăn xếp:Nội dung của SP tự động giảmThông tin được cất vào ngăn nhớ được trỏ bởi SPKhi 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 SPNội dung của SP tự động tăngKhi ngăn xếp rỗng, SP trỏ vào đáyĐỉnh ngăn xếpĐáy Ngăn xếpSP8/12/202119Chương 3: Bộ xử lý trung tâmThanh 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ậpThanh ghi cơ sởThanh ghi chỉ số8/12/202120Chương 3: Bộ xử lý trung tâmCác thanh ghi dữ liệuChứa các dữ liệu tạm thời hoặc các kết quả trung gianCần có nhiều thanh ghi dữ liệuCác thanh ghi số nguyên: 8, 16, 32, 64 bitCác thanh ghi số dấu phẩy độngThanh 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 AXThí dụ nếu AX=1234h thì AH=12h AL=34h1514131211109876543210AHAL8/12/202121Chương 3: Bộ xử lý trung tâmCác thanh ghi dữ liệuThanh 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à CL8/12/202122Chương 3: Bộ xử lý trung tâmThanh ghi trạng thái(thanh ghi cờ)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ùngChứa các thông tin trạng thái của CPUCác cờ phép toán: báo hiệu trạng thái của kết quả phép toánCác cờ điều khiển: biểu thị trạng thái điều khiển của CPUODI TSZAPC15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 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 8/12/202123Chương 3: Bộ xử lý trung tâmThanh 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 0Cờ 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ớiNế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ới8/12/202124Chương 3: Bộ xử lý trung tâmThanh 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ànCờ DF: xác định hướng theo chiều tăng/ giảm trong xử lý chuổiCờ PF: PF=1 khi kết quả có số bit 1 là chẳn và ngược lạiCờ 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 caoCờ TF: báo cho CPU thi hành từng bước, cung cấp công cụ debug chương trình8/12/202125Chương 3: Bộ xử lý trung tâmCác thanh ghi SegmentCPU 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ìnhDS : chứa địa chỉ của các biến khai báo trong chương trìnhSS : chứa địa chỉ của bộ nhớ Stack dùng trong chương trìnhES : chứa địa chỉ cơ sở bổ sung cho các biến bộ nhớ8/12/202126Chương 3: Bộ xử lý trung tâmThanh 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 ....8/12/202127Chương 3: Bộ xử lý trung tâmThanh 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ớ. 8086 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.8/12/202128Chương 3: Bộ xử lý trung tâmĐị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).8/12/202129Chươ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 : offsetSegment: địa chỉ đoạnOffset: đị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 : offsetVD : B001:12358/12/202130Chương 3: Bộ xử lý trung tâmSự 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ý8/12/202131Chương 3: Bộ xử lý trung tâmCách tính địa chỉ vật lý từ địa chỉ luận lýĐịa chỉ vật lý = (segment*10h) + offsetVD : tính địa chỉ vật lý tương ứng địa chỉ luận lý B001:1235Địa chỉ vật lý = B0010h + 1235h = B1245h8/12/202132Chương 3: Bộ xử lý trung tâmSự 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:0534 Đều có chung địa chỉ vật lý 13574 ??8/12/202133Chương 3: Bộ xử lý trung tâmSự chồng chất các đoạn64KB0000FFFFoffsetÔ nhớ có địa chỉ segment:offsetsegmentBộ nhớ8/12/202134Chương 3: Bộ xử lý trung tâmSự chồng chất các đoạnKhi 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:002ATrong segment 0001 là 0001:001ATrong segment 0002 là 0002:000A8/12/202135Chương 3: Bộ xử lý trung tâmSự chồng chất các đoạnNế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ý8/12/202136Chương 3: Bộ xử lý trung tâm3.2. Tập lệnhGiới thiệu chung về tập lệnhMỗi bộ xử lý có một tập lệnh xác địnhTập lệnh thường có hàng chục đến hàng trăm lệnhMỗ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 địnhCá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ữ8/12/202137Chương 3: Bộ xử lý trung tâmCác thành phần của lệnh máyMã 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 độngToán hạng nguồn: dữ liệu vào của thao tácToán hạng đích: dữ liệu ra của thao tácMã thao tácĐịa chỉ của các toán hạng8/12/202138Chương 3: Bộ xử lý trung tâmSố lượng địa chỉ toán hạng trong lệnhBa địa chỉ toán hạng:2 toán hạng nguồn, 1 toán hạng đíchc = a + bTừ 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ếnHai đị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ồna = a + bGiá 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ệnhPhổ biến8/12/202139Chương 3: Bộ xử lý trung tâmSố lượng địa chỉ toán hạng trong lệnhMột địa chỉ toán hạng:Một toán hạng được chỉ ra trong lệnhMộ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ước0 địa chỉ toán hạng:Các toán hạng đều được ngầm định. Sử dụng Stack. Ví dụpush apush baddpop ccó nghĩa là : c = a+b. không thông dụng8/12/202140Chương 3: Bộ xử lý trung tâmĐánh giá về số địa chỉ toán hạngNhiều địa chỉ toán hạngCác lệnh phức tạp hơnCần nhiều thanh ghiChương trình có ít lệnh hơnNhận lệnh và thực hiện lệnh chậm hơnÍt địa chỉ toán hạngCác lệnh đơn giản hơnCần ít thanh ghiChương trình có nhiều lệnh hơnNhận lệnh và thực hiện lệnh nhanh hơn8/12/202141Chương 3: Bộ xử lý trung tâmCác lệnh chuyển dữ liệuMOVE Copy dữ liệu từ nguồn đến đíchLOAD 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à đíchCLEAR Chuyển các bit 0 vào toán hạng đíchSET Chuyển các bit 1 vào toán hạng đíchPUSH Cất nội dung toán hạng nguồn vào ngăn xếpPOP Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng đích8/12/202142Chương 3: Bộ xử lý trung tâmCác lệnh số họcADD Cộng hai toán hạngSUBTRACT Trừ hai toán hạngMULTIPLY Nhân hai toán hạngDIVIDE Chia hai toán hạngABSOLUTE Lấy trị tuyệt đối toán hạngNEGATE Đổi dấu toán hạng (lấy bù 2)INCREMENT Tăng toán hạng thêm 1DECREMENT Giảm toán hạng đi 1COMPARE Trừ hai toán hạng để lập cờ8/12/202143Chương 3: Bộ xử lý trung tâmCác lệnh logicAND Thực hiện phép AND hai toán hạngOR Thực hiện phép OR hai toán hạngXOR Thực hiện phép XOR hai toán hạngNOT Đả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ạngROTATE Quay trái (phải) toán hạng8/12/202144Chương 3: Bộ xử lý trung tâmCác lệnh vào ra chuyên dụngINPUT Copy dữ liệu từ một cổng xác định đưa đến đíchOUTPUT Copy dữ liệu từ nguồn đến một cổng xác định8/12/202145Chương 3: Bộ xử lý trung tâmCác lệnh chuyển điều khiểnJUMP (BRANCH) Lệnh nhảy không điều kiện: nạp vào PC một địa chỉ xác địnhJUMP 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 conRETURN 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ính8/12/202146Chương 3: Bộ xử lý trung tâmCác lệnh điều khiển hệ thốngHALT Dừng thực hiện chương trìnhWAIT 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ệnNO OPERATION Không thực hiện gì cảLOCK Cấm không cho xin chuyển nhượng busUNLOCK Cho phép xin chuyển nhượng bus8/12/202147Chương 3: Bộ xử lý trung tâm3.3. Hoạt động của CPUChu trình lệnhNhận lệnhGiải mã lệnhNhận toán hạngThực hiện lệnhCất toán hạngNgắt8/12/202148Chương 3: Bộ xử lý trung tâmNhận lệnhCPU đư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 IRCPU tăng nội dung PC để trỏ sang lệnh kế tiếpPCIRCPUĐơn vị điều khiểnBộ nhớBusĐịa chỉBusDữ liệuBusĐiểu khiển8/12/202149Chương 3: Bộ xử lý trung tâmGiải mã lệnhLệ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ệnGiải mã lệnh xảy ra bên trong CPU8/12/202150Chương 3: Bộ xử lý trung tâmNhận dữ liệuCPU đưa địa chỉ của toán hạng ra bus địa chỉCPU phát tín hiệu điều khiển đọcToán hạng được đọc vào CPUTương tự như nhận lệnh8/12/202151Chương 3: Bộ xử lý trung tâmNhận dữ liệu gián tiếpCPU đưa địa chỉ ra bus địa chỉCPU phát tín hiệu điều khiển đọcNộ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ạngCPU phát tín hiệu điều khiển đọcToán hạng được đọc vào CPU8/12/202152Chương 3: Bộ xử lý trung tâmThực hiện lệnhCó nhiều dạng tuỳ thuộc vào lệnhCó thể là:Đọc/Ghi bộ nhớVào/RaChuyển giữa các thanh ghiThao tác số học/logicChuyển điều khiển (rẽ nhánh)8/12/202153Chương 3: Bộ xử lý trung tâmGhi toán hạngCPU đưa địa chỉ ra bus địa chỉCPU đưa dữ liệu cần ghi ra bus dữ liệuCPU phát tín hiệu điều khiển ghiDữ liệu trên bus dữ liệu được copy đến vị trí xác địnhMARMBRCPUĐơn vị điều khiểnBộ nhớBusĐịa chỉBusDữ liệuBusĐiểu khiểnMAR: Thanh ghi địa chỉ bộ nhớMBR: Thanh ghi đệm bộ nhớ8/12/202154Chương 3: Bộ xử lý trung tâmNgắtNộ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ệuCPU đư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 PC8/12/202155Chương 3: Bộ xử lý trung tâmĐườ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)8/12/202156Chương 3: Bộ xử lý trung tâmBiểu đồ thời gian của đường ống lệnh1234567891011121314FIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOLệnh 1Lệnh 2Lệnh 3Lệnh 4Lệnh 5Lệnh 6Lệnh 7Lệnh 88/12/202157Chương 3: Bộ xử lý trung tâmCác vấn đề của đường ống lệnhVấn đề cấu trúc: do nhiều công đoạn dùng chung một tài nguyênVấn đề dữ liệu: lệnh sau sử dụng dữ liệu kết quả của lệnh trướcVấn đề điều khiển: do rẽ nhánh gây ra8/12/202158Chương 3: Bộ xử lý trung tâmCác kiến trúc song song mức lệnhSiêu đường ống (Superpipeline & Hyperpipeline)Siêu vô hướng (Superscalar)VLIW (Very Long Instruction Word)8/12/202159Chương 3: Bộ xử lý trung tâmSuperpipelineIF: Instruction Fetch, first falf IS: Instruction Fetch, second half RF: register fetchEX: Execution DF: Data fetch, first half DS: data fetch, second halfTC: Tag check WB: write back8/12/202160Chương 3: Bộ xử lý trung tâmSuperscalarFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOFIDICOFOEIWOLệnh 1Lệnh 2Lệnh 3Lệnh 4Lệnh 5Lệnh 6- Thực hiện nhiều lệnh trong cùng 1 chu kỳ clock8/12/202161Chương 3: Bộ xử lý trung tâmCISC và RISCCISC 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, 680x0RISC 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 CISC8/12/202162Chương 3: Bộ xử lý trung tâmCác đặc trưng của RISCSố lượng lệnh ítHầu hết các lệnh truy nhập toán hạng ở các thanh ghiTruy nhập bộ nhớ bằng các lệnh LOAD/STOREThời gian thực hiện lệnh là một chu kỳ máyCá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ớnCó í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ệnh8/12/202163Chương 3: Bộ xử lý trung tâm3.5. Kiến trúc IntelKiến trúc 4-bit: 4004Kiến trúc 8-bit: 8008,8080,8085Kiến trúc 16-bit: 8086/8088,80186,80286Kiến trúc 32-bit: 80386, 80486, Pentium,Pentium II, Celeron, Pentium III, Pentium 4Kiến trúc 64-bit: Itanium8/12/202164Chương 3: Bộ xử lý trung tâmKiến trúc 16-bit (IA-16)Các thanh ghi bên trong: 16-bitXử lý các phép toán số nguyên với 16-bitQuản lý bộ nhớ theo đoạn 64KBytesMở đầu cho dòng máy tính IBM-PC8/12/202165Chương 3: Bộ xử lý trung tâmKiến trúc 32-bit (IA-32)Các thanh ghi bên trong: 32-bitXử lý các phép toán số nguyên với 32-bitCó ba chế độ làm việc:Chế độ 8086 thực (Real 8086 mode): làm việc như một bộ xử lý 8086Chế độ 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-bitquản lý bộ nhớ ảoXử lý các phép toán số dấu phẩy động (từ 80486)8/12/202166Chương 3: Bộ xử lý trung tâmKiến trúc 64-bit (IA-64)Các thanh ghi bên trong: 64-bitXử lý các phép toán số nguyên với 64-bitXử lý các phép toán số dấu phẩy độngKhô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ường8/12/202167Chương 3: Bộ xử lý trung tâmHết chương 38/12/202168Chương 3: Bộ xử lý trung tâm
Các file đính kèm theo tài liệu này:
- bai_giang_cau_truc_may_tinh_chuong_3_bo_xu_ly_trung_tam_cpu.ppt