Bài giảng Các vấn đề cơ sở của khoa học máy tính - Chương 3: Tổ chức máy tính cung cấp cho người học các kiến thức: Kiến trúc von Neumann, biểu diễn dữ liệu, chiều dài từ của máy tính, dạng dữ liệu nguyên, dạng dữ liệu thực, dạng ký tự, CPU/ALU, tập lệnh, bộ nhớ, nhập/xuất dữ liệu. Mời các bạn cùng tham khảo nội dung chi tiết.
Chương 3: TỔ CHỨC MÁY TÍNH Nội Dung Kiến trúc von Neumann Biểu diễn liệu Chiều dài từ máy tính Dạng liệu nguyên Dạng liệu thực Dạng ký tự CPU / ALU Tập lệnh Bộ nhớ 10 Nhập / Xuất Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • Kiến Trúc Von Neumann Hầu hết máy tính ngày hoạt động dựa vào “kiến trúc von Neumann” Ý tưởng kiến trúc chương trình liệu lưu trữ nhớ máy tính John von Neumann đưa ý tưởng vào năm 1945 Kiến trúc von Neumann gọi “máy tính có chương trình lưu trữ stored program computer” Các bước (lệnh) chương trình lưu trữ nhớ máy tính chu kỳ thao tác máy lấy bước (lệnh để thực thi) từ nhớ, hoàn thành thao tác lấy bước Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Kiến Trúc Von Neumann • Quá trình lặp lại máy tính gặp lệnh “dừng - halt” Có thành phần chủ yếu máy tính von Neumann Bộ nhớ nơi chứa chương trình liệu Đơn vị xử lý trung tâm (central processing unit - CPU) truy xuất chương trình liệu nhớ thực thi chúng Đơn vị nhập/xuất truy xuất thiết bị nhập xuất liệu Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • • Biểu Diễn Dữ Liệu Chúng ta thường sử dụng số biểu diễn “cơ số 10 - base 10” – hệ thập phân Có lẻ số dựa ý tưởng có 10 ngón tay Ví dụ: 427 = * 102 + * 101 + * 100 Chúng ta nói số biểu diễn số 10 ký số số nhân với luỹ thừa 10 Máy tính sử dụng số 2, điều làm cho dễ dàng việc xây dựng phần cứng máy tính dựa hai trạng thái on off (1 0) Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Biểu Diễn Dữ Liệu Cơ số gọi “hệ nhị phân binary number system” Các ký số (bit) số hệ nhị phân nhân với luỹ thừa Ví dụ, tính giá trị thập phân (cơ số 10) số nhị phân 10011010: 10011010 = 27 + 24 + 23 + 21 = 154 Phép cộng hệ nhị phân: + = 0 + = 1 + = 10 (nhớ - bit bên trái nhất) Ví dụ, cộng hai số nhị phân 1100 0110: 1100 0110 10010 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Chiều Dài Từ Của Máy Tính Mỗi máy tính khác truy xuất lúc số bit khác Ví dụ, máy tính truy xuất bit lúc gọi “máy tính bit” Nói cách khác, máy tính có “chiều dài từ - word size” bit Máy tính PC IBM sử dụng xử lý 8088 Intel có bus liệu bit, nghĩa đọc/ghi bit liệu lúc với thiết bị ngoại vi Ngày nay, hầu hết máy tính có chiều dài từ 32 hay 64 bit Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng • • • Định Dạng Số Nguyên Cho đến bây giờ, thảo luận số nguyên dương Máy tính cần thao tác với số nguyên có dấu số thực Để lưu trữ số có dấu, bit bên trái (msb) sử dụng làm bit dấu Bit có giá trị số dương số âm Số nguyên âm biểu diễn cách lấy bù (two’s complement) số dương tương ứng Để tính bù số, đảo ngược bit số cộng thêm Ví dụ, bù (00000110) máy tính bit: Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Định Dạng Số Nguyên • 11111001 +00000001 11111010 (−6) Chúng ta kiểm tra lại giá trị cách cộng với 6, kết 0: 11111010 (−6) +00000110 (+6) 100000000 (0, bỏ bit bên trái nhất) Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • • Định Dạng Số Thực Biểu diễn số thực khó số nguyên Số thực gồm phần định trị (mantissa) phần số mũ (exponent) Phần định trị phần số mũ dương âm Phần định trị lớn cho độ xác lớn, phần số mũ lớn cho miền trị lớn Trước vào thập niên 1980, nhà sản xuất máy tính khác sử dụng cách biểu diễn liệu khác Vì vậy, chương trình liệu khơng tương thích máy tính khác Viện IEEE (Institute of Electrical and Electronic Engineers) đưa chuẩn để 10 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Tập Lệnh MOV ADD SUB DIV IMUL DEC INC AND OR XOR NOT IN Gán tốn hạng nguồn cho đích Cộng hai toán hạng Trừ hai toán hạng Chia ghi cho tốn hạng đích Nhân số có dấu Giảm tốn hạng đích đơn vị Tăng tốn hạng đích đơn vị Lấy VÀ hai toán hạng Lấy HOẶC hai toán hạng Lấy XOR hai toán hạng Lấy NOT tốn hạng đích Đọc liệu từ cổng 28 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Tập Lệnh OUT JMP JG JZ CALL RET CLC CMP HLT INT LOOP NEG Xuất liệu cổng Nhảy không điều kiện Nhảy lớn Nhảy Gọi chương trình Trả chương trình Xố cờ nhớ So sánh hai tốn hạng Dừng CPU Thực ngắt Lặp vòng Chuyển thành số âm (bù 2) 29 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Tập Lệnh OUT JMP JG JZ CALL RET CLC CMP HLT INT LOOP NEG Xuất liệu cổng Nhảy không điều kiện Nhảy lớn Nhảy Gọi chương trình Trả chương trình Xố cờ nhớ So sánh hai toán hạng Dừng CPU Thực ngắt Lặp vòng Chuyển thành số âm 30 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Tập Lệnh POP PUSH ROL ROR SHL SHR XCHG Lấy liệu từ stack Nạp liệu vào stack Quay bit sang trái Quay bit sang phải Dịch bit sang trái Dịch bit sang phải Hoán đổi nội dung hai toán hạng 31 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Tập Lệnh POP PUSH ROL ROR SHL SHR XCHG Lấy liệu từ stack Nạp liệu vào stack Quay bit sang trái Quay bit sang phải Dịch bit sang trái Dịch bit sang phải Hoán đổi nội dung hai toán hạng 32 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Bộ Nhớ Bộ nhớ (memory) máy tính tổ chức thành ô (cell), ô đánh địa riêng biệt Trước đây, nhà sản xuất máy tính khơng thống với kích thước đơn vị nhớ Các máy tính khác sử dụng kích thước nhớ khác Ngày nay, byte dùng làm đơn vị nhớ máy tính Hầu hết máy tính, bất chấp chiều dài từ bao nhiêu, byte nhớ có địa đọc/ghi giá trị 33 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Bộ Nhớ Như biết, đơn vị đo lường nhớ sau: - kilobyte (KB) = 1.024 byte (210) - megabyte (MB) = 1.048.576 byte (220) - gigabyte (GB) = 1.037.741.824 byte (230) - terabyte (TB) = 1.099.511.627.776 byte (240) - petabyte (PB) = 1.125.899.906.842.624 (250) Bộ nhớ sử dụng để lưu giữ lệnh chương trình liệu Các thao tác với nhớ lưu/ghi lấy/đọc/nạp Có hai ghi kết hợp với mạch điều khiển nhớ để làm cho dễ dàng đọc ghi 34 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng Bộ Nhớ • • liệu Đó ghi MAR (thanh ghi địa - memory address register) MDR (thanh ghi liệu - memory data register) Khi ghi liệu, CPU chuyển giá trị ghi đến MDR địa để ghi đến MAR Ở chu kỳ truy xuất nhớ tiếp theo, giá trị MDR chép vào địa MAR Khi đọc liệu, CPU chứa địa để đọc vào MAR Ở chu kỳ truy xuất nhớ tiếp theo, giá trị địa MAR chép vào MDR Từ ghi MDR, giá trị chuyển đến ghi khác 35 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Bộ Nhớ • • • nơi Bộ nhớ máy tính biết đến nhớ RAM (bộ nhớ truy cập ngẫu nhiên random access memory) Chúng ta truy xuất địa nhớ thời gian truy xuất Ngồi nhớ chính, nhà thiết kế máy tính tích hợp vào CPU nhớ có dung lượng nhỏ, tốc độ truy cập nhanh gọi nhớ cache (bộ nhớ đệm) Bộ nhớ cache lưu giữ nội dung liệu truy cập để sau dùng lại, nhằm làm tăng tốc độ máy tính 36 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Nhập/Xuất Hầu hết liệu sử dụng cho chương trình khơng nằm máy tính Khi liệu xử lý xong, thường muốn chúng hiển thị hình hay xuất máy in Có nhiều thiết bị nhập/xuất khác nhau: - Giao tiếp với người: bàn phím, chuột, hình - Máy tính trực tiếp sử dụng: đĩa, thiết bị kết nối mạng Các thiết bị nhập/xuất có tốc độ khác nhau, tất chậm CPU nhớ 37 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • • • Nhập/Xuất Trong máy tính trước đây, CPU đợi để nhập ký tự Một lệnh máy giao tiếp với bàn phím để sẵn sàng nhận ký tự lệnh máy kiểm tra xem ký tự nhập chưa Nếu ký tự chưa nhập, chương trình lặp vịng để kiểm tra (polling) Phương pháp gọi “programmed I/O with polling” hay “busy waiting” Các máy tính ngày sử dụng hệ thống ngắt (interrupt system) để tránh trường hợp phải chờ hệ điều hành quản lý tất nhập/xuất Mỗi thiết bị nhâp/xuất kết nối với máy Các Vấn Đề Cơ Sở KHMT 38 ThS GVC Tơ Oai Hùng Nhập/Xuất tính thơng qua “bộ điều khiển nhập/xuất - I/O controller” Bộ điều khiển nhập/xuất có gắn nhớ với dung lượng nhỏ để làm đệm (buffer) chứa liệu tạm thời trình nhận hay gởi • Khi chương trình u cầu xuất, hệ điều hành chuyển liệu đến nhớ đệm điều khiển nhập/xuất, điều khiển nhập/xuất chuyển liệu đến thiết bị xuất Khi liệu chuyển xong, điều khiển nhập/xuất tạo ngắt (interrupt) để báo cho hệ điều hành biết chuyển xong Hệ điều hành đáp lại ngắt cách bắt đầu 39 thực thi thao tác xuất khác Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • Nhập/Xuất Khi chương trình u cầu nhập, hệ điều hành tạm dừng thực thi lệnh cho điều khiển nhập/xuất thiết bị bắt đầu đọc liệu Sau đó, hệ điều hành chuyển điều khiển CPU đến chương trình thứ hai để thực thi, chương trình đầu đợi để nhập Khi liệu nhập xong, điều khiển nhập/xuất sinh ngắt Hệ điều hành đáp lại cách tạm dừng chương trình thứ hai, chuyển liệu từ nhớ đệm điều khiển nhập/xuất đến chương trình đầu tiếp tục thực thi chương trình đầu 40 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng • Nhập/Xuất Các thiết bị nhập/xuất phân làm loại thiết bị ký tự (character device) thiết bị khối (block device): Thiết bị ký tự: giao tiếp với bên byte, byte khơng có địa Nghĩa truy xuất liệu theo dạng Đa số thiết bị nhập/xuất dùng với máy tính thuộc loại bàn phím, chuột, card mạng, máy quét, máy in, … Thiết bị khối: giao tiếp với bên khối liệu, khối có địa cố định độc lập Các thiết bị loại CD-ROM, âm thanh, thiết bị hiển thị, … 41 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng • • • Nhập/Xuất Các thiết bị ký tự sinh ngắt cho ký tự truyền đi, thiết bị khối sinh ngắt tồn khối truyền Hầu hết máy tính ngày có điều khiển truy xuất nhớ trực tiếp (direct memory access - DMA) để dùng với thiết bị khối Bộ điều khiển DMA dùng để truy xuất trực tiếp nhớ chia sẻ công việc truy xuất nhớ với CPU DMA truyền liệu trực tiếp đệm điều khiển nhập/xuất với nhớ chính, không yêu cầu phục vụ từ CPU 42 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng ... nhớ - Nhảy đến vị trí chương trình - Dịch bit giá trị sang trái hay sang phải - So sánh giá trị - Cộng giá trị hai ghi - Thực phép toán luận lý, … 23 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng. .. Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng Định Dạng Số Thực độ lệch 127 mà giá trị khác? b) Nếu giá trị độ lệch 127 miền trị số mũ bao nhiêu? 14 Các Vấn Đề Cơ Sở KHMT ThS GVC Tơ Oai Hùng • •... với máy tính mới, mã nguồn chương trình khơng thay đổi Lệnh máy gồm dãy bit Một số bit dùng làm mã lệnh (op-code) Ví dụ, số mã lệnh ADD, Jump, Compare 25 Các Vấn Đề Cơ Sở KHMT ThS GVC Tô Oai Hùng