Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 191 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
191
Dung lượng
4,48 MB
Nội dung
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com ðẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ðẠI HỌC CÔNG NGHỆ THÔNG TIN o0o Giáo trình KIẾN TRÚC MÁY TÍNH I Biên soạn: Vũ ðức Lung 2007 CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com LỜI NĨI ðẦU Với mục tiêu đưa mơn học chuyên ngành công nghệ thông tin vào học từ học kỳ đầu trường ðại học Cơng nghệ thơng tin, giáo trình Kiến trúc máy tính biên soạn đặc biệt cho mục đích ñịnh hướng cho sinh viên nghành công nghệ thông tin năm thứ Giáo trình Kiến trúc máy tính trình bày vấn đề chung nhất, thành phần cấu thành nên máy tính đại nhằm trang bị cho sinh viên nội dung chủ yếu chương sau: Chương I: Trình bày lịch sử phát triển máy tính tích máy tính giai đoạn, hệ máy tính, định hướng phát triển máy tính cách phân loại máy tính Chương II: Giới thiệu ngun lý hoạt động chung tính chất phận yếu máy tính như: xử lý (CPU), mạch (Mainboard), thiết bị lưu trữ liệu, loại nhớ RAM, Card đồ họa, hình Ngồi cịn cho thấy hình dáng tích hợp phận với nhằm giúp sinh viên tự mua sắm, lắp ráp máy tính cho Chương III: Trình bày cách biến đổi hệ thống số (như hệ thập phân, hệ nhị phân, hệ bát phân, hệ thập lục phân), cách ñể biểu diễn liệu, cách thực phép tính số học cho hệ nhị phân Chương IV: Các cổng ñại số Boolean, ñịnh lý ñại số Boolean, cách ñơn giản hàm Boolean mạch số, cách biểu diễn mạch số qua hàm Boolean ngược lại, mạch tổ hợp bản, cách thiết kế mạch đơn giản Chương V: Trình bày ngun lý họat ñộng mạch lật, flip-flop, qui trình thiết kế mạch đưa ví dụ cụ thể cho việc thiết kế http://www.ebook.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Phân loại kiến trúc lệnh, cách bố trí địa nhớ, cách mã hóa tập lệnh, lệnh máy tính qua lệnh hợp ngữ assembler Chương VII: Giới thiệu cấu trúc xử lý trung tâm: tổ chức, chức nguyên lý hoạt ñộng phận bên xử lý tính tốn logic số học, điều khiển, tập ghi Ngồi cịn trình bày cách tổ chức đường liệu, diễn biến trình thi hành lệnh kỹ thuật ống dẫn Như nói trên, giáo trình nhằm giảng dạy cho sinh viên năm thứ kiến thức ñưa ðể hiểu sâu vấn ñề nên xem thêm sách tham khảo cuối giáo trình Mặc dù cố gắng biên soạn cơng phu kỹ lưỡng, nhiên khó tránh khỏi thiếu sót Chúng tơi mong đón nhận đóng góp ý kiến Thầy, bạn đồng nghiệp, bạn sinh viên bạn ñọc nhằm chỉnh sửa giáo trình hồn thiện Cuối xin chân thành cảm ơn góp ý q giá đồng nghiệp biên soạn giáo trình Vũ ðức Lung http://www.ebook.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu Chương I: Giới thiệu 1.1 Lịch sử phát triển máy tính Trong q trình phát triển cơng nghệ máy tính, người chế tạo hàng ngàn loại máy tính khác Rất nhiều số máy tính bị qn lãng đi, số cịn nhắc lại ngày ðó máy tính với ý tưởng thiết kế nguyên lý hoạt ñộng ñộc ñáo tạo nên tầm ảnh hưởng lớn đến máy tính hệ sau ðể giúp sinh viên có khái niệm máy tính hiểu rõ cách mà người ñã phát minh máy tính đại, dễ sử dụng ngày nay, phần trình bày chi tiết quan trọng lịch sử trình phát triển máy tính Máy tính thường phân loại thành hệ dựa tảng công nghệ phần cứng ñược sử dụng trình chế tạo Lịch sử phát triển máy tính chia thành hệ máy tính sau: 1.1.1 Thế hệ zero –máy tính học (1642-1945) Mốc lịch sử máy tính phải nhắc ñến ñầu tiên nhà bác học người Pháp Blez Pascal (1626-1662) vào năm 1642 ñã phát minh máy tính tốn – máy tính học với bánh quay dẫn ñộng tay Máy ông cho phép thực phép tính cộng trừ Sau 30 năm, vào năm 1672 nhà bác học khác, Gotfrid Vilgelm Leibnits ñã chế tạo máy tính với phép tính (+ * /) sử dụng 12 bánh quay Từ cịn sinh viên hết đời, ơng nghiên cứu tính chất hệ nhị phân người ñã ñưa nguyên lý khái niệm cho hệ nhị http://www.ebook.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu phân ñược dùng ngày máy tính điện tử Năm 1834 giáo sư toán học trường ðH Cambridge (Anh), Charles Babbage (người phát minh đồng hồ cơng tơ mét) thiết kế máy tính với phép tính + – có cấu trúc đáng để ý thời – máy tính có phận: - nhớ, - tính tốn, - thiết bị nhập ñể ñọc phiếu ñục lỗ, - thiết bị xuất để khoan lỗ lên đồng Chính ý tưởng ơng tiền đề cho máy tính đại sau ðể máy tính hoạt động cần phải có chương trình, ơng th Ada làm chương trình cho máy tính Cơ Ada lập trình viên để tưởng nhớ tới ta sau Ada đặt tên cho ngơn ngữ lập trình Tuy nhiên máy tính khơng hoạt động địi hỏi q phức tạp thời người kỹ thuật chưa cho phép Năm 1936 К Zus (người ðức) ñã thiết kế vài máy ñếm tự ñộng sở rơle (relay) Tuy nhiên ơng khơng biết máy tính Babbage máy tính ơng bị phá hủy trận bom vào Berlin chiến tranh giới lần thứ - 1944 Vì phát minh ơng ta khơng ảnh hưởng đến phát triển kỹ thuật máy tính sau Năm 1944 G Iken (thuộc ðH Havard Mỹ) đọc cơng trình Babbage ơng cho đời Mark I sau Mark II Máy Mark I đời với mục đích phục vụ chiến tranh Nó nặng tấn, cao 2.4 m, dài 15 m, chứa 800 km dây ñiện Tuy nhiên vào thời điểm máy tính relay qua thời bắt đầu kỷ ngun máy tính ñiện tử 1.1.2 Thế hệ I – bóng ñèn ñiện (1945-1955) Chiến tranh giới thứ bắt ñầu vào ñầu thời kỳ chiến tranh tàu ngầm ðức ñã phá hủy nhiều tàu Anh, nhờ http://www.ebook.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu tín hiệu mã hóa ñược chuyền ñi thiết bị ENIGMA mà quân ñội Anh khơng thể giải mã ðể giải mã địi hỏi số lượng tính tốn lớn nhiều thời gian, chiến tranh khơng cho phép chờ đợi Vì phủ Anh cho thành lập phịng thí nghiệm bí mật nhằm chế tạo máy tính điện phục vụ cho việc giải mã thông tin Năm 1943 máy tính COLOSSUS đời với 2000 đèn chân khơng giữ bí mật suốt 30 năm trở thành sở cho phát triển máy tính Một người sáng lập COLOSSUS nhà toán học tiếng Alain Turing Trong hình 1.1 chân dung Alain Turing bóng đèn chân khơng Bóng đèn chân khơng Hình 1.1 Alain Turing với bóng đèn chân khơng Chiến tranh giới có ảnh hưởng lớn đến phát triển kỹ thuật máy tính Mỹ Qn đội Mỹ cần bảng tính tốn cho pháo binh hàng trăm phụ nữ th cho việc tính tốn máy tính tay (người ta cho phụ nữ tính tốn cẩn thận nam giới) Tuy nhiên q trình tính tốn địi hỏi thời gian lâu nhằm ñáp ứng yêu cầu BRL (Ballistics Research Laboratory – Phịng nghiên cứu đạn đạo qn đội Mỹ) việc tính tốn xác nhanh chóng bảng số liệu đạn đạo cho loại vũ khí mới, dự án chế tạo máy ENIAC ñã ñược bắt ñầu vào năm 1943 http://www.ebook.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu Máy ENIAC (Electronic Numerical Integrator And Computer), John Mauchly John Presper Eckert (ñại học Pensylvania, Mỹ) thiết kế chế tạo, máy số hố điện tử đa giới (hình 1.2) Số liệu kỹ thuật: ENIAC máy khổng lồ với 18000 bóng đèn chân khơng, nặng 30 tấn, tiêu thụ lượng điện vào khoảng 140kW chiếm diện tích xấp xỉ 1393 m2 Mặc dù vậy, làm việc nhanh nhiều so với loại máy tính điện thời với khả thực 5000 phép cộng giây đồng hồ Hình 1.2 Máy tính ENIAC ðiểm khác biệt ENIAC & máy tính khác: ENIAC sử dụng hệ đếm thập phân khơng phải nhị phân tất máy tính khác Với ENIAC, số ñược biểu diễn dạng thập phân việc tính http://www.ebook.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu tốn thực hệ thập phân Bộ nhớ máy gồm 20 "bộ tích lũy", có khả lưu giữ số thập phân có 10 chữ số Mỗi chữ số thể vịng gồm 10 đèn chân khơng, ñó thời ñiểm, có ñèn trạng thái bật ñể thể mười chữ số từ ñến hệ thập phân Việc lập trình ENIAC cơng việc vất vả phải thực nối dây tay qua việc đóng/mở cơng tắc cắm vào rút dây cáp ñiện Hoạt ñộng thực tế: Máy ENIAC bắt ñầu hoạt ñộng vào tháng 11/1945 với nhiệm vụ khơng phải tính tốn đạn đạo (vì chiến tranh giới lần thứ hai kết thúc) mà để thực tính tốn phức tạp dùng việc xác định tính khả thi bom H Việc sử dụng máy vào mục đích khác với mục đích chế tạo ban đầu cho thấy tính đa ENIAC Máy tiếp tục hoạt động quản lý BRL cho ñến ñược tháo rời vào năm 1955 Với ñời thành cơng máy ENIAC, năm 1946 xem năm mở đầu cho kỷ ngun máy tính điện tử, kết thúc nỗ lực nghiên cứu nhà khoa học ñã kéo dài nhiều năm liền trước Máy tính Von Neumann Như đề cập trên, việc lập trình máy ENIAC công việc tẻ nhạt tốn nhiều thời gian Cơng việc có lẽ đơn giản chương trình biểu diễn dạng thích hợp cho việc lưu trữ nhớ với liệu cần xử lý Khi máy tính cần lấy thị cách ñọc từ nhớ, ngồi chương trình thiết lập hay thay đổi thơng qua chỉnh sửa giá trị lưu phần nhớ Ý tưởng này, ñược biết ñến với tên gọi "khái niệm chương trình lưu trữ", nhà tốn học John von Neumann (Hình http://www.ebook.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu 1.3), cố vấn dự án ENIAC, ñưa ngày 8/11/1945, ñề xuất loại máy tính có tên gọi EDVAC (Electronic Discrete Variable Computer – Ekert Moyshly ñã bắt ñầu làm ngừng lại thành lập cơng ty, sau Unisys Corporation) Máy tính cho phép nhiều thuật tốn khác tiến hành máy tính mà khơng cần phải nối dây lại máy ENIAC John von Neumann Hình 1.3 Von Neumann với máy tính EDVAC Máy IAS Tiếp tục với ý tưởng mình, vào năm 1946, von Neuman đồng nghiệp bắt tay vào thiết kế máy tính có chương trình lưu trữ với tên gọi IAS (Institute for Advanced Studies) học viện nghiên cứu cao cấp Princeton, Mỹ Mặc dù ñến năm 1952 máy IAS hồn tất, mơ hình cho tất máy tính đa sau Cấu trúc tổng quát máy IAS, ñược minh họa hình 1.4, gồm có: http://www.ebook.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương I: Giới thiệu Một nhớ để lưu trữ liệu chương trình Một đơn vị số học – luận lý (ALU – Arithmetic and Logic Unit) có khả thao tác liệu nhị phân Một đơn vị điều khiển có nhiệm vụ thơng dịch thị nhớ làm cho chúng ñược thực thi Thiết bị nhập/xuất ñược vận hành ñơn vị điều khiển Hầu hết máy tính ñều có chung cấu trúc chức tổng quát Do chúng cịn có tên gọi chung máy von Neumann Hình 1.4 Cấu trúc máy IAS 1.1.3 Thế hệ II – transistor (1955-1965) Sự thay đổi lĩnh vực máy tính điện tử xuất có thay đèn chân khơng đèn bán dẫn ðèn bán dẫn nhỏ hơn, rẻ hơn, tỏa nhiệt ñược sử dụng theo cách thức ñèn chân khơng để tạo nên máy tính Khơng đèn chân khơng vốn địi hỏi phải có dây, có bảng kim loại, có bao thủy tinh chân khơng, đèn bán dẫn thiết bị trạng thái rắn ñược chế tạo từ silicon có nhiều cát tự nhiên ðèn bán dẫn phát minh lớn phịng thí nghiệm Bell Labs năm 1947 Bardeen, Brattain Shockley Nó tạo cách mạng ñiện tử năm 50 kỷ http://www.ebook.edu.vn CuuDuongThanCong.com https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh Từ gợi nhớ mã lệnh mô tả ngắn gọn tác vụ phải thi hành ghi nguồn, kết ñược lưu giữ ghi ñích Mỗi lệnh ngơn ngữ cấp cao xây dựng lệnh mã máy chuỗi nhiều lệnh mã máy Lệnh nhảy (GOTO) ñược thực lệnh hợp ngữ nhảy (JUMP) lệnh hợp ngữ vòng Chúng ta phân biệt lệnh nhảy làm cho ñếm chương trình nạp vào địa tuyệt đối nơi phải nhảy ñến (PC ← ñịa tuyệt ñối nơi phải nhảy tới), với lệnh vịng theo ta cần cộng thêm độ dời vào đếm chương trình (PC ← PC + độ dời) Ngồi kiểu kiến trúc máy tính có cách mã hóa lệnh tên câu lệnh khác nhau, phần ñể ý ñến kiểu cấu trúc RISC 6.4.1 Nhóm lệnh truyền liệu Nhóm lệnh nhằm truyền liệu (a word or a block) từ nguồn ghi nhớ đến đích Phần lớn nhóm lệnh truyền liệu ghi khác CPU Việc truyền liệu từ ghi đến ghi khác thơng qua lệnh sau: MOVE Ri, Rj ghi Ri // truyền liệu từ ghi Rj ñến Ở ñây liệu từ ghi nguồn Rj ñược ghi ñè lên ghi đích Ri, cịn liệu Rj khơng thay đổi Một số ví dụ lệnh MOVE bảng 6.4 http://www.ebook.edu.vn CuuDuongThanCong.com 176 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh ðích Bộ nhớ Thanh ghi Thanh ghi Thanh ghi Nguồn Thanh ghi Bộ nhớ Ví dụ Giải thích MOVE 100H, AX Chuyển nội dung AX vao vị trí nhớ 100H MOVE AX,MEM1 Chuyển nội dung vị trí nhớ MEM1 vào ghi AX MOVE AX, BX Thanh Chuyển nội dung ghi ghi BX vào ghi AX Hằng số MOVE AX, Chuyển giá trị số 0FFFFH hệ 16: FFFF vào ghi AX, số ñầu ñể rõ FFFFH giá trị nhãn Bảng 6.4 Một số ví dụ lệnh MOVE ðể nạp giá trị từ nhớ vào ghi lưu giá trị từ ghi vào nhớ ta dùng lệnh sau: LOAD đích, nguồn ví dụ: LOAD Ri, M (địa chỉ) // Ri M[địa chỉ] STORE đích, nguồn ví dụ: STORE M(địa chỉ), Ri // M[ñịa chỉ] ←Ri Trong bảng 6.5 cho ta thấy số lệnh ý nghĩa Bảng 6.5 Một số lệnh truyền liệu http://www.ebook.edu.vn CuuDuongThanCong.com 177 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh 6.4.2 Nhóm lệnh tính tốn số học: Các lệnh số học bao gồm bốn phép tính số học cộng, trừ, nhân, chia đảo dấu tốn hạng ADD/SUB Dạng tổng quát lệnh cộng (add) trừ (subtract) sau: ADD đích, nguồn // đích đích + nguồn SUB đích, nguồn // đích đích – nguồn tốn hạng đích nguồn tím theo ñịa khác nhau, phải chứa liệu có độ dài khơng phép đồng thời hai nhớ khơng ghi đoạn Ví dụ 1: ADD ADD SUB SUB AX, BX AL,74H CL, AL AX, 0405H // AX // AL // CL // AX AX + BX AL + 74H CL – AL AX – 0405H Ví dụ 2: Viết đoạn chương trình ngơn ngữ Assembly để cộng 5H với 3H, dùng ghi AL BL Kết phép cộng lưu vào nhớ ñịa 100H MOV MOV ADD MOV AL, 05H BL, 03H AL, BL 100H, AL // AL 05H // BL 03H // AL AL + BL // MEM[100H] AL: di // chuyển kết từ AL vào // vị trí nhớ DS:100H Bảng 6.6 cho ta tóm tắt lệnh tính tốn số học ý nghĩa tương ứng http://www.ebook.edu.vn CuuDuongThanCong.com 178 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh Tên lệnh Ý nghĩa Cộng ADD Cộng số có dấu chấm động, xác kép ADDD Trừ SUB Trừ số có dấu chấm động, xác kép SUBD Nhân MUL Chia DIV Tăng lên INC Giảm ñi DEC ðảo dấu tốn hạng NEG Bảng 6.6 Các lệnh tính tốn số học 6.4.3 Nhóm lệnh logic: Tthực phép tính logic NOT, AND OR cho bit Lệnh NOT đảo tất bit tốn hạng, lệnh AND/OR thực phép tính AND/OR đơi bit tốn hạng nguồn tốn hạng đích AND/OR Dạng tổng qt lệnh AND/OR sau: AND đích, nguồn OR đích, nguồn AND/OR thực phép tốn Boolean tốn hạng nguồn đích Phép AND thường dùng để che giữ lại vài bit tốn hạng cách nhân logic tốn hạng với tốn hạng tức thời có bit 0/1 vị trí cần che/ giữ lại tương ứng Phép OR thường dùng để lập vài bit tốn hạng cách cộng logic tốn hạng với tốn hạng tức thời có bit vị trí tương ứng cần thiết lập (tốn hạng tức thời trường hợp cịn gọi mặt nạ) Ví dụ: AND AL, BL // Nội dung ghi BL ñược giao // với nội dung ghi AL http://www.ebook.edu.vn CuuDuongThanCong.com 179 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh // kết ñược lưu lại vào // gh AL Nếu số // AL 00001101B BL // 00110011B kết // ghi AL sau phép AND 00000001B 6.4.4 Nhóm lệnh dịch chuyển số học logic (SHIFT ), quay vịng (ROTATE) có khơng có số giữ ngã vào, sang phải sang trái Các lệnh ñược thực ghi kết lưu giữ ghi khác Số lần dịch chuyển (mỗi lần dịch sang phải sang trái bit) thường ñược xác ñịnh ghi thứ ba Hình 6.11 minh hoạ cho lệnh nhóm SRL (Shift Right Logical - dịch phải logic): Các bit word ñược dịch chuyển sang phải, bit thấp (bit 0) cịn trị nhị phân “0” dịch chuyển vào bit cao SLL (Shift Left Logical - dịch trái logic): Các bit word ñược dịch chuyển sang trái, trị nhị phân “0” dịch chuyển vào bit thấp (bit 0) , cịn bit cao SRA (Shift Right Arithmetic - dịch phải số học): Bit cao bit dấu ñược giữ lại, bit lại dịch chuyển sang phải bit thấp ñi SLA (Shift Left Arithmetic – dịch trái số học): Bít cao bit dấu ñược giữ nguyên, bit dịch sang trái, bít kế bit dấu ñi, trị nhị phân “0” dịch chuyển vào bit thấp Tương tự cho lệnh quay vịng hình 6.11 http://www.ebook.edu.vn CuuDuongThanCong.com 180 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh Hình 6.11 Các lệnh dịch chuyển quay vòng http://www.ebook.edu.vn CuuDuongThanCong.com 181 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh 6.4.5 Nhóm lệnh có điều kiện lệnh nhảy (khơng điều kiện) Lệnh có điều kiện có dạng : Nếu không (IF THEN ELSE ) Lệnh buộc phải ghi nhớ ñiều kiện nhảy vịng điều kiện thoả Ghi nhớ điều kiện Bộ tính tốn logic số học ALU cung cấp kết ngã tuỳ theo ngã vào phép tính cần làm Nó cho số thông tin khác kết dạng bit trạng thái (Hay bit cờ - flag) Các bit đại lượng logic ðÚNG SAI (hình 6.12) Trong bit trạng thái ta có: + bit dấu S (Sign - ðúng kết âm), + bit trắc nghiệm zero Z (Zero - ðúng kết không), + bit tràn OVF (Overflow) ðÚNG phép tính số học làm ghi khơng đủ khả lưu trữ kết quả, + bit số giữ C (carry) ðÚNG số giữ ngã Các bit thường ñược gọi bit mã ñiều kiện http://www.ebook.edu.vn CuuDuongThanCong.com 182 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh Toán hạng Toán hạng Số mang vào (Carry in) ALU Bit S Bit Z Bit OVF Bit C Kết Hình 6.12 Các bit trạng thái mà ALU tạo Có hai kỹ thuật để ghi nhớ bit trạng thái Cách thứ nhất, ghi trạng thái ghi đa dụng Ví dụ lệnh CMP Rk, Ri, Rj Lệnh làm phép tính trừ Ri - Rj mà khơng ghi kết phép trừ, mà lại ghi bit trạng thái vào ghi Rk Thanh ghi ñược dùng cho lệnh nhảy có điều kiện ðiểm lợi kỹ thuật giúp lưu trữ nhiều trạng thái sau nhiều phép tính để dùng sau ðiểm bất lợi phải dùng ghi ña dụng ñể ghi lại trạng thái sau phép tính mà số ghi lại bị giới hạn 32 xử lý ñại Cách thứ hai, ñể bit trạng thái vào ghi ñặc biệt gọi ghi trạng thái Vấn ñề lưu giữ nội dung ghi ñược giải nhiều cách Trong kiến trúc SPARC, có số giới hạn lệnh phép thay đổi ghi trạng thái ví dụ lệnh ADDCC, SUBCC (các lệnh thực phép tính cộng ADD phép tính trừ SUB cịn làm thay đổi ghi trạng thái) Trong kiến trúc PowerPC, ghi trạng thái ñược http://www.ebook.edu.vn CuuDuongThanCong.com 183 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh phân thành trường, trường bit, ghi ñã phân thành ghi trạng thái ðặc tính chung lệnh thứ tự thực thi chương trình thay đổi nhờ tác động vào già trị lưu ghi đếm chương trình (Program Counter - PC) Sự thay đổi ghi PC khơng có điều kiện, ví dụ chương trình thực đến chỗ cần phải nhảy đến vị trí khác, ta sử dụng lệnh nhảy (Jump instruction) Trường hợp ngơn ngữ cấp cao ta hay gặp lệnh GOTO, gá trị nạp vào trước ghi PC bị xóa lệnh nhớ ñược nạp vào Thanh ghi PC thay đổi có điều kiện, mà ñiều kiện chủ yếu dựa vào cờ bít dấu (S), bit Zero (Z), Overflow (O) bit Carry (C) Những bit cờ ñược lưu trữ ghi ñặc biệt gọi ghi mã ñiều kiện (Condition Code register - CC) Giá trị bit cờ thay ñổi dựa vào kết thực thi lệnh khác Chúng ta xem ví dụ cụ thể sau: LOAD #100, R1 Loop: ADD (R2)+ , R0 DECREMENT R1 BEQZ R1, Loop Câu lệnh thứ lệnh có điều kiện Khi kết tăng giá trị ghi R1 0, flag Z chuyển thành lệnh ñược thực thi lệnh vị trí nhãn Loop 6.5 Cấu trúc lệnh CISC RISC Trong máy tính thứ đưa số nhị phân “0” “1” máy tính hiểu mức điện tương ứng với 0/1 transistor cụ thể, người sử dụng muốn thực chương trình đấy, phải nạp mã lệnh gồm số 0-1 vào nhớ cho máy tính Có cách ñể làm việc ấy: http://www.ebook.edu.vn CuuDuongThanCong.com 184 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh • Viết dạng mã máy với số 0, nạp vào nhớ Cách khó thực thi thứ dễ bị nhầm lẫn số 1; thứ hai khó nhớ lệnh mã hóa thứ ba thời gian để làm việc • Viết dạng tên gợi nhớ hợp ngữ (Assembler), sau biên dịch mã máy, cấp gần với ngơn ngữ máy khó thực với chương trình phức tạp Tuy nhiên, cấu trúc gọn nhẹ, lệnh có tên tương ứng dễ nhớ • Viết ngôn ngữ cấp cao C++, Pascal, Java,…, sau dùng trình biên dịch (compiler) để dịch mã máy Cách dễ với người viết chương trình làm chương trình có dung lượng lớn viết ASM Và thách thức nhà sản xuất phần mềm, phần cứng bắt tay để chương trình biên dịch thật chuẩn tắc, nhỏ gọn, không tạo nhiều code trung gian Trong suốt thập niên 1980, nhà thiết kế cố gắng thu hẹp khoảng cách ngôn ngữ cấp cao người ngơn ngữ máy, họ ñưa cấu trúc với lệnh phức tạp gọi CISC (Complex Instruction Set Computer), có chế ñộ ñịnh ñịa khác nhau, lệnh thực thi cần nhiều lần ñịnh ñịa ñể lấy liệu, đó, tốn nhiều chu kì xung nhịp cho lệnh Nếu việc giảm thiểu ranh giới tập lệnh vi điều khiển ngơn ngữ cấp cao khơng phải cách hay để máy tính hoạt ñộng hiệu quả, nhà thiết kế phải ñể tối ưu tốc ñộ xử lý? Nếu muốn biết cách làm ñể vi xử lý hoạt ñộng nhanh hơn, ta phải biết vi xử lý dùng hầu hết thời gian chúng vào việc gì? Chúng ta dễ nghĩ rằng: Vi xử lý tất nhiên dùng hầu hết thời gian để tính tốn; nghĩa thời gian hầu hết ALU Thật ra, theo thống kê (xem bảng 6.7) suy đốn hồn tồn sai lầm: http://www.ebook.edu.vn CuuDuongThanCong.com 185 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh Loại lệnh % sử dụng thời gian Chuyển liệu 43% ðiều khiển dịng chảy 23% Tính tốn số học 15% So sánh 13% Phép toán Logic 5% Các lệnh khác 1% Bảng 6.7 Thống kê thời gian thực loại lệnh So sánh CISC RISC Sự khác biệt chip dịng máy tính với tập lệnh rút gọn RISC (reduced instruction set computer) máy tính với tập lệnh phức tạp CISC (complex instruction set computer, chẳng hạn dòng chip x86 Intel) xem ganh đua nhà lập trình nhà thiết kế chip Chip CISC ñược thiết kế nhằm tạo thuận lợi cho nhà lập trình ứng dụng cách rút gọn nhiều câu lệnh đơn giản, thơng dụng thành câu lệnh thực thi dài ðiều làm cho CISC xử lý chậm lại ñạt yếu tố thân thiện Ở mặt khác, RISC nhanh thân thiện hơn, câu lệnh ñơn giản RISC phục vụ cho mục ñích hẹp cụ thể, thực nhanh lệnh tiến hành song song RISC địi hỏi nhà lập trình phải kiên nhẫn, giỏi trình biên dịch tối ưu kỹ lưỡng ðiểm mạnh xử lý dùng tập lệnh RISC: – Kích thước miếng bán dẫn nhỏ hơn: xử lý ñơn giản địi hỏi transistor hơn, đó, kích thước cần dùng nhỏ lại, dành vùng diện tích trống để tăng chức nhớ cache, chức quản lý nhớ, vv… – Thời gian phát triển sản phẩm ngắn kĩ thuật ñơn giản – Tốc ñộ xử lý tăng lên ñáng kể Khi ta ñặt lệnh phức tạp, gần gũi với ngơn ngữ cấp cao, thế, vơ tình làm lệnh khác phức tạp lên, ñể http://www.ebook.edu.vn CuuDuongThanCong.com 186 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh thực thi lệnh cần tốn nhiều chu kì xung nhịp Trong đó, dùng RISC chu kì xung nhịp cho lệnh, ta phân nhỏ vấn ñề phức tạp thành vấn đề đơn giản cách giải tốt Các ñiểm bất lợi RISC: Khơng phải RISC có điều thuận lợi, có vài bất cập, mà cụ thể là: – Tập lệnh RISC không phong phú CISC, cần thiết kế chương trình mà khơng có lệnh cần thiết phải thơng qua loạt lệnh khác làm tăng lên số chu kỳ xung nhịp cần thiết, tức ñã làm chậm hệ thống ñi – Cấm thâm nhập nhớ ñối với tất lệnh ngoại trừ lệnh ñọc ghi vào nhớ Do ta buộc phải dùng nhiều lệnh để làm cơng việc định – Cần thiết phải tính địa hiệu dụng khơng có nhiều cách định vị – Khơng thể thực thi mã lệnh x86, kiểu kiến trúc máy tính q thơng dụng quen thuộc với người Như để tích hợp phải dùng phần mềm hỗ trợ sở cho RISC, nhiên, với máy tính IBM, bị từ chối Tóm lại điểm khác biệt hai kiểu kiến trúc RISC CISC liệt kê bảng 6.8 http://www.ebook.edu.vn CuuDuongThanCong.com 187 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh RISC – Kích thước lệnh (ñộ dài lệnh) cố ñịnh ( 32 bit) với vài ñịnh dạng – Sử dụng kiến trúc load-store lệnh xử lý liệu hoạt ñộng ghi cách ly với lệnh truy cập nhớ – Một số lớn ghi ña dụng 32 bit, cho phép cấu trúc load-store hoạt động hiệu – Có số lệnh (thường 100 lệnh) – Có số kiểu ñịnh vị ( thường ñịnh vị tức định vị gián tiếp qua ghi) – Có số dạng lệnh (một hai) – Chỉ có lệnh ghi đọc nhớ thâm nhập vào nhớ – Giải mã lệnh logic kết nối phần cứng CISC – Kích thước tập lệnh thay ñổi với nhiều ñịnh dạng khác – Cho phép giá trị nhớ ñược dùng như toán hạng lệnh xử lý liệu – Có nhiều ghi, hầu hết ñể sử dụng cho mục đích riêng biệt – Có nhiều lệnh (khoảng 500) – Có nhiều kiểu định vị (xem phần 6.3.4) – Có nhiều dạng lệnh – Có nhiều lệnh khác thâm nhập vào nhớ ñược – Sử dụng nhiều code ROM giải mã lệnh – Các máy cũ cho phép – Thực thi lệnh theo cấu trúc dòng lệnh thực thi kiểu này, dịng chảy (xem hình 7.9 chúng phải hết dòng lệnh chương sau) đến dịng lệnh khác – Cần nhiều chu kì xung nhịp để hồn thành lệnh – Một lệnh thực thi chu kì xung nhịp Bảng 6.8 Các ñiểm khác RISC CISC http://www.ebook.edu.vn CuuDuongThanCong.com 188 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh CÂU HỎI VÀ BÀI TẬP CHƯƠNG VI Có máy loại kiến trúc lệnh bản? Nêu ưu nhược ñiểm loại Cho biết ñạc tính kiểu kiến trúc ghi đa dụng ðịa nhớ ñược xếp nào? Giữa cách Intel Motorola khác biệt gì? Vướng mắc xảy máy tính hai hãng kết nối với nhau? Cho biết cách mã hóa tập lệnh đưa vài dạng mã hóa Hãy cho biết giải thích tiêu chuẩn thiết kế dạng thức lệnh Cho biết cách mã hóa tập lệnh ñưa vài dạng mã hóa Thiết kế opcode mở rộng nhằm cho phép mã hóa nội dung sau lệnh 36 bit a) lệnh có hai ñịa 15 bit số hiệu ghi bit b) 500 lệnh có địa 15 bit số hiệu ghi bit c) 50 lệnh khơng có địa ghi Có thể thiết kế opcode mở rộng phép mã hóa nội dung sau lệnh 12 bit khơng? Thanh ghi rộng bit a) lệnh có ba ghi b) 255 lệnh có ghi c) 16 lệnh khơng có ghi http://www.ebook.edu.vn CuuDuongThanCong.com 189 https://fb.com/tailieudientucntt Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com Chương VI: Kiến trúc lệnh Cho biết chế ñộ lập ñịa ưu, nhược ñiểm loại Mơ tả hình cách lập địa 10 Mơ tả kiểu thi hành lệnh máy tính Tại kiểu thi hành lệnh ghi – ghi ñược dùng nhiều tại? 11 Hãy diễn giải trình biên dịch ngôn ngữ máy từ ngôn ngữ cấp cao 12 Các lệnh máy tính phân nhóm lệnh nào? đưa ví dụ cho nhóm lệnh 13 Mơ tả hình vẽ lệnh dịch chuyển quay vịng giải thích tác dụng lệnh 14 Hãy cho biết số bit trạng thái mà ALU tạo cách dùng bit lệnh nhảy 15 Hãy phân biệt khác hai kiểu kiến trúc máy tính RISC CISC http://www.ebook.edu.vn CuuDuongThanCong.com 190 https://fb.com/tailieudientucntt ... triệu USD c) Máy tính mini (Minicomputer) loại máy cở trung, giá máy tính mini từ vài chục USD đến vài trăm ngàn USD d Máy vi tính (Microcomputer) loại máy tính dùng vi xử lý, giá máy vi tính từ vài... triển máy tính tích máy tính giai đoạn, hệ máy tính, định hướng phát triển máy tính cách phân loại máy tính Chương II: Giới thiệu ngun lý hoạt động chung tính chất phận yếu máy tính như: xử lý (CPU),... thực máy tính song song với từ vài xử lý ñến vài ngàn xử lý ðiều làm chuyên gia kiến trúc máy tính tiên đốn hệ thứ hệ máy tính xử lý song song ðó việc tương lai xa, cịn cơng ty sản xuất máy tính