Giáo trình kiến trúc máy tính nguyễn trung đồng

183 1.9K 2
Giáo trình kiến trúc máy tính   nguyễn trung đồng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LỜI NÓI ĐẦU Máy tính ngày trở thành công cụ thiếu thay đời sống thường nhật Ứng dụng công nghệ thông tin sinh hoạt hàng ngày, sản xuất cải vật chất công việc điều hành, quản lý ngày phổ biến Có thể nói người, không phân biệt giới tính hay tuổi tác, tìm công cụ sắc bén niềm hứng khởi, say mê kể giải công việc học hỏi, nghiên cứu sáng tạo hay giải trí Cấu tạo máy tính ngày đại, tinh vi, phức tạp, bao gồm nhiều thành phần chức đòi hỏi liên kết, hợp tác nhiều ngành khoa học, công nghệ mũi nhọn tạo nên Kiến trúc máy tính (Computer Architecture) ngành khoa học nghiên cứu nguyên lý hoạt động, tổ chức (organization) máy tính từ thành phần chức – cấu trúc tổ chức phần cứng, tập lệnh – mà qua đó, lập trình viên nhận thấy, sử dụng, khai thác sáng tạo để đáp ứng tốt hơn, đầy đủ yêu cầu người dùng Một máy tính không bao gồm thành phần vật lý, khổi chức – thường gọi phần cứng (hardware) – mà bao gồm khối lượng đồ sộ chương trình điều hành, quản lý, tiện ích ứng dựng, gọi phần mềm (software) Giáo trình biên soạn sở giảng tác giả Trường Đại học Công nghệ Thông tin truyền thông, Đại học Thái Nguyên từ năm 2002-2010, trường Đại học Thăng Long, Học viện Công nghệ Bưu Viễn thông; giáo trình trình bày vấn đề lý thuyết thành phần nhất, chung kiến trúc máy tính Giáo trình biên soạn cho sinh viên học ngành Công nghệ thông tin trường Đại học Các thuật ngữ khoa học sử dụng tài liệu trích dẫn tiếng Anh – ngôn ngữ chung ngành Công nghệ thông tin Tuy nhiên, tác giả muốn tài liệu dùng làm tham khảo cho quan tâm hay yêu thích tìm hiểu kiến thức lĩnh vực chuyên môn Nội dung giáo trình trình bày chương Chương I nhắc lại kiến thức mạch điện tử số, cổng logic, mạch flip-flop, v.v…, phần tử cấu thành mạch chức máy tính Các kiến thức mạch tổ hợp, mạch tuần tự, mạch cộng liệu nhị phân, ghi dịch, …, trình bày Những kiến thức cần thiết để sinh viên dễ dàng nắm bắt nguyên lý làm việc khối chức máy tính Nguyễn Trung Đồng – Tel 0983 410 866 Chương II giới thiệu kiến thức tổng quan kiến trúc máy tính, nguyên lý kiến trúc, chức năng, nhiệm vụ thành phần tạo nên máy tính theo nguyên lý Von Neumann Nội dung chương phân biệt hai khái niệm kiến trúc, tổ chức máy tính với cấu trúc máy tính để dễ dàng nắm bắt yêu cầu hiểu biết CPU, nhớ, thiết bị ngoại vi liên kết hệ thống đơn vị chức Nguyên lý phương thức biểu diễn thông tin số, thông tin không số trình bày chương Chương III trình bày kiến trúc bước thiết kế kiến trúc đơn vị xử lý trung tâm CPU, đơn vị điều khiển CU thông qua việc phân tích hoạt động chức thực thi lệnh, thực thi chương trình Chương IV phân tích kiến trúc tập lệnh phương thức CPU thực lệnh, chu kỳ lệnh thực chương trình, thông qua củng cố sâu thêm hiểu biết nguyên lý kiến trúc, chuẩn bị kiến thức sở cho lập trình hệ thống Thông qua truy xuất nhớ để lấy lệnh, lấy liệu, phân tích phương pháp định vị ô nhớ cấu trúc lệnh Chương V trình bày khái niệm BUS chức kênh truyền dẫn thông tin, liệu liên kết thành phần chức máy tính Nội dung chương đề cập mối liên kết thông qua hệ thống BUS CPU với nhớ, CPU với thiết bị ngoại vi yêu cầu định thời cho hoạt động trao đổi thông tin, liệu Chức truy cập trực tiếp nhớ (Direct Memory Access), chức quản lý điều khiển trình ngắt phân tích chương Trên sở phân tích nội dung trên, đưa yêu cầu thiết kế, xây dựng hệ thống BUS nhằm đảm bảo cho hệ thống máy tính hoạt động ổn định Chương VI trình bày tổ chức quản lý nhớ Các khái niệm phần tử nhớ, tạo từ nhớ từ chip nhớ đề cập cụ thể Nội dung đề cập phương thức quản lý nhớ theo phân đoạn, phân trang, quản lý nhớ chế độ bảo vệ, quản lý theo đặc quyền truy xuất Các phương pháp tổ chức quản lý nhớ cache, thành phần nâng cao đáng kể hiệu suất hoạt động CPU, khảo sát kỹ chương Chương VII phân tích yêu cầu vài thiết bị ngoại vi chủ yếu thiết bị nhập liệu, thiết bị hiển thị kết xử lý Chương VIII giới thiệu sơ lược kỹ thuật công cụ phục vụ phát triển hệ thống phần mềm máy tính Những khái niệm lập trình hợp ngữ, chương trình dịch, chương trình thông dịch, khái niệm hệ điều hành Đây kiến thức tối thiểu khái niệm phần mềm, thành phẫn cốt lõi thứ hai tạo nên hệ thống máy tính Nguyễn Trung Đồng – Tel 0983 410 866 Như nói trên, giáo trình biên soạn lại theo nội dung giảng tác giả sử dụng lâu nay, cố gắng, song chắn nhiều thiếu sót Mong độc giả góp ý để tác giả rút kinh nghiệm bổ sung Tác giả xin chân thành cảm ơn đồng nghiệp Viện Công nghệ Thông tin, Viện Hàn lâm Khoa học Công nghệ Việt Nam, đồng nghiệp môn Khoa học máy tính, Kỹ thuật máy tính trường mà tác giả tham gia giảng dạy luôn động viên, góp ý trình biên soạn Rất mong nhận góp ý quý độc giả theo địa Email dongnt@hn.vnn.vn Xin chân thành cảm ơn Nguyễn Trung Đồng Nguyễn Trung Đồng – Tel 0983 410 866 Chương I Những kiến thức sở Một số phần tử Logic Các mạch logic tạo từ liên kết phần tử điện tử thông dụng transistor, diode, điện trở, tụ điện,… Tuỳ theo công nghệ chế tạo phần tử mà chúng có tên gọi khác logic TTL, logic CMOS, logic HMOS, logic MOSFET v.v…Hình I.1 cho ta thấy cấu trúc mạch nguyên lý phần tử TTL thực chức đảo tích logic hai giá trị đầu vào (NAND) Vcc R1 R2 R3 T3 T1 T2 A Inputs B T4 F = AB Output F A R4 F B Gnd Hình I.1 Sơ đồ nguyên lý mạch tạo phần tử NAND Phần tử logic thực hàm đại số Boole NOT, AND, NAND, OR, XOR, v.v…Từ phần tử này, người ta xây dựng mạch tổ hợp (Combinational Circuits) mạch lật (FlipFlop) với đặc tính chuyển đổi trạng thái khác R-S FlipFlop, D-FlipFlop, TFlipFlop, J-K FlipFlop mà nhờ chúng, ta xây dựng mạch (Sequencial Circuits) máy hữu hạn (Finite State Machine), mạch tích hợp tạo nên đơn vị chức máy tính A Y Y=A A A B Y A Y= A.B A B Y=A A B Y=A+B Y A B Y A B Y Y=A.B A B Y Y=A Y=A+B Y Y=A+B A B Y Y=A.B Y A B Y Y=A.B Y=A Y A B A B Y Y Y=A Y=A+B B B Hình I.2 Một số phần tử logic Nguyễn Trung Đồng – Tel 0983 410 866 Hình I.3 Các phần tử mạch lật (FlipFlop) thông dụng Đặc biệt, mạch logic trạng thái (Three-State Logic Circuit) mạch có ứng dụng quan trọng việc liên kết phần tử chức máy tính Mạch logic trạng thái minh hoạ theo mô hình bảng chân thực sau (Hình I.4), trạng thái có ký hiệu "HZ" trạng thái thứ mạch, trạng thái trở kháng cao (High Impedance), mà lối vào coi tách khỏi lối mạch (không kết nối) Có hai loại mạch trạng thái:, loại mạch có tín hiệu EN tích cực cao, ứng với EN = "1" (Active High), loại thứ hai mạch có tín hiệu EN tích cực thấp ứng với EN = "0" (Active Low) Nguyễn Trung Đồng – Tel 0983 410 866 Hình I.4 Phần tử trạng thái (Three-State component) bảng chân lý Một số khái niệm sở 2.1 Mạch logic tổ hợp (Combinational Circuit) Mạch logic tổ hợp mạch điện tử số mà giá trị biến đầu phụ thuộc vào tổ hợp giá trị biến đầu vào (Hình I.5) i0 F0(i0,i1) i1 F1(i0,i1,i4) i2 Mạch logic tổ hợp F2(i2,i4,i5,i7) in Fm(i2,i3,i6,in) Hình I.5 Mạch logic tổ hợp Các biến vào i0, i1, …, in nhận giá trị "1" "0" tương ứng với giá trị biến nhị phân, mạch điện, chúng thể trạng thái "có điện áp" "không có điện áp" Các giá trị đầu hàm trực tiếp biến đầu vào, thay đổi gần tức thời có thay đổi giá trị biến đầu vào (chỉ trễ khoảng thời gian nhỏ - hàng nano giây - trễ linh kiện tạo nên mạch điện) Có thể nói tập giá trị đầu vào i0 ÷ in áp vào lối vào mạch tổ hợp logic gây nên biến đổi trạng thái (giá trị) biến đầu F0 ÷ Fm Các mạch tổ hợp thông dụng thường thấy mạch mã hoá, mạch giải mã, mạch dồn kênh, v.v… Nguyễn Trung Đồng – Tel 0983 410 866 2.2 Mạch (Sequencial Circuit) Mạch gọi mạch dãy Giá trị biến phụ thuộc vào giá trị biến số đầu vào thời điểm xét, mà phụ thuộc vào trạng thái trước mạch Để trì trạng thái biến số vào trước đó, mạch cần thêm phần tử nhớ Mô hình mạch sau: Zi = Fi (x1, x2, …, xn , y1 , y2 , …, yp); Yj = Gj (x1, x2, …, xn , y1 , y2 , …, yp) Trong Fi hàm truyền đạt mạch Gj hàm truyền đạt trạng thái; xi (i = 1, 2, …,n), Zi (i = 1, 2, …, m) tín hiệu vào tín hiệu mạch; y1 , y2 , …, yp : trạng thái mạch trước biến đổi; Y1 , Y2 , …, Yp : trạng thái mạch sau biến đổi Các phần tử nhớ phần tử logic có hai trạng thái ổn định ứng với giá trị biến nhị phân "0" "1", thường mạch FlipFlop loại RS, JK D Z1 Z2 Zm x1 Mạch xn tổ hợp y1 Hình I.6 Mạch logic yp Y1 Các phần tử nhớ Yp 2.3 Máy hữu hạn (Finite State Machine) Máy hữu hạn loại mạch logic khác có Nguyễn Trung Đồng – Tel 0983 410 866 trạng thái (internal state), đầu loại mạch hàm giá trị đầu vào thời điểm xét trạng thái có tác động tín hiệu vào Mạch tạo thành từ mạch tổ hợp logic phần tử trễ, thông thường phần tử Flip-Flop mạch hồi tiếp phần tử lưu giữ trạng thái mạch 2.4 Thanh ghi (Register) Thanh ghi mạch điện tử đặc biệt có khả lưu giữ giá trị liệu nhị phân biểu diễn trạng thái tồn hay không tồn điện áp Phần tử tạo nên ghi D-FlipFlop Trên hình vẽ mô tả, liệu nhị phân bit D3D2D1D0 (tổ hợp hai giá trị "0" "1" lối vào D tương ứng D-FlipFlop) chuyển tới lối Q3Q2Q1Q0 lưu giữ nhờ tổ hợp tín hiệu điều khiển ghi Write WR, tín hiệu xung nhịp đồng hồ CLK tín hiệu cho phép Enable EN (Hình 1.7) Lưu ý rằng, tín hiệu ghi đưa qua phần tử trạng thái để tạo khả kết nối với liệu lối thành phần khác Cũng cần nói thêm rằng: Thanh ghi Hình I.7 Mạch tạo hoàn toàn đảm nhận ghi bit chức ô nhớ liệu, giá trị liệu nhị phân từ lối vào ghi vào ghi, liệu không thay đổi thời điểm liệu ghi vào Dữ liệu lưu giữ ô nhớ đọc Hình I.9 sơ đồ nguyên lý ghi dịch có khả ghi dịch theo hướng trái, phải lưu giữ (Load) liệu nhị phân bit D3D2D1D0 song song 2.5 Mạch cộng hai số liệu nhị phân (Binary Adder) Mạch cộng đầy đủ bit nhị phân xây dựng mạch tổ hợp logic thực phép cộng hai số nhị phân theo quy tắc bảng sau, Carry In phần nhớ từ phép cộng hàng bên phải trước đó, Operand A giá trị bit toán hạng A, Operand B giá trị bit toán hạng B Kết phép cộng bit cho ta tổng Sum bit nhớ Carry Out Nguyễn Trung Đồng – Tel 0983 410 866 Hình I.8 Sơ đồ nguyên lý mạch tạo ghi dịch bit Trong ví dụ phép cộng hai số nhị phân 0100B (giá trị hệ thập phân) với số 0110B (giá trị hệ thập phân) Hàng giá trị bit nhớ theo quy luật cộng nêu Kết cho ta 1010B (tức 10 hệ thập phân) A B S Sơ đồ mạch logic thực phép cộng bit nhị phân – Half Adder (HA) C Từ quy tắc trên, giả thiết ta xây dựng mạch cộng đầy đủ thực phép toán cộng bảng giá trị hàm S i Ci ký hiệu mạch cộng đầy đủ (Full adder) với đầu vào Ai , Bi Ci , đầu Si Ci+1, ta xây dựng mạch cộng hai liệu nhị phân bit cách Nguyễn Trung Đồng – Tel 0983 410 866 nối nối tiếp mạch cộng đầy đủ Hình I.11 , mạch cộng hai số nhị phân n bit với n mạch cộng đầy đủ Ci Ai Bi Si Ci+1 Hình I.10 Sơ đồ mạch logic thực phép cộng bit có nhớ từ hàng trước – FullAdder (FA) Hình I.11 Sơ đồ mạch logic thực phép cộng liệu bit Hình I.12 Sơ đồ mạch logic thực phép giải mã chọn tổ hợp 10 Nguyễn Trung Đồng – Tel 0983 410 866 góc trái hiển thị, mã ký tự ánh xạ thành ký tự v.v Phương pháp ánh xạ nhớ cho phép chương trình máy tính dễ dàng thay đổi nội dung hiển thị cách thay đổi nội dung nhớ hiển thị Mỗi ký tự hiển thị hình dạng ma trận 8x8(*) điểm ảnh sáng/tối hình vẽ: Cũng có trường hợp sử dụng ma trận 5x7, 7x9, 7x12 9x14 điểm Phương pháp hiển thị ánh xạ nhớ không hoàn toàn phù hợp với việc hiển thị đối tượng có hình dạng không bình thường chuyển động nhanh, đáp ứng thời gian thực bị chậm cần phải thao tác nhiều điểm ảnh để dịch chuyển đối tượng 4.3 Bộ điều khiển hình CRTC Thiết bị giao diện hình (bộ điều khiển hình ) CRTC thực việc chuyển mã ký tự nhớ hiển thị thành ký tự hình chế độ văn mẫu ký tự hiển thị vị trí hàng cột cố định (25 hàng x 80 cột) Sơ đồ nguyên lý thiết bị giao diện hình chế độ văn sau: BUS Địa hệ thống hàng X, cột Y Bộ nhớ Địa CRTC dòng ảnh ROM tạo ký tự hiển thị Mẫu điểm Xung nhịp ký tự Xung nhịp điểm ảnh Thanh ghi dịch ảnh Cường độ điểm sáng Đồng ngang Đồng dọc Hình V.8 – Sơ đồ khối điều khiển hiển thị CRTC 169 Nguyễn Trung Đồng – Tel 0983 410 866 Mỗi ký tự hình chứa nhiều hàng điểm ảnh CRTC có nhiệm vụ chuyển mã ASCII nhớ hiển thị thành chuỗi mẫu điểm ảnh, đưa mẫu nằm lên dòng hình Điều thực nhờ ROM tạo ký tự ROM tạo ký tự chứa hộp mẫu ký tự, hộp mẫu ký tự có kích thước byte mang thông tin ma trận điểm ảnh ký tự Ví dụ hộp mẫu ký tự A có dạng sau : 00110000 01111000 11001100 11001100 11111100 11111100 11001100 11001100 Nếu cần hiển thị 256 ký tự ASCII cần ROM 2Kbyte, đủ chứa 256 hộp mẫu ký tự, hộp mẫu chiếm ô nhớ liền Các hộp mẫu ký tự ROM tạo ký tự định vị địa 11 bit, bit địa cao xác định vị trí hộp ROM, bit địa thấp xác định vị trí byte mẫu điểm ảnh hộp Các mẫu ký tự đặt ROM theo trật tự bảng mã ASCII Nguyên lý hoạt động thiết bị giao diện hình chế độ văn sau: Giả sử cần hiển thị hai ký tự A B vị trí hàng - cột hàng - cột hình Mã ASCII hai ký tự đặt hai vị trí tương ứng nhớ hiển thị CRTC gửi địa hàng cột hình cho nhớ hiển thị (hàng=0, cột=0) Bộ nhớ hiển thị gửi mã ASCII ký tự (ký tự A) cho ROM, mã ASCII ký tự mang thông tin địa hộp mẫu ký tự ROM (8 bit địa cao) Tại thời điểm CRTC gửi địa dòng mẫu điểm ảnh (dòng mẫu điểm 0) cho ROM (3 bit địa thấp) Hai địa kết hợp lại tạo thành địa (11 bit) cho phép truy nhập vào dòng mẫu điểm ảnh ký tự (ký tự A) ROM xuất ghi dịch ảnh Từ ghi dịch ảnh, bit mẫu ảnh đưa hình Khi tất bit mẫu ảnh từ ghi dịch đẩy hình, CRTC tiếp tục gửi địa hàng-cột (hàng=0, cột=1) cho nhớ hiển thị gửi địa dòng mẫu điểm ảnh (dòng mẫu điểm 0) cho ROM, nhớ hiển 170 Nguyễn Trung Đồng – Tel 0983 410 866 thị gửi mã ASCII ký tự (ký tự B) cho ROM Dòng mẫu điểm ảnh ký tự (ký tự B) xuất ghi dịch ảnh Tương tự dòng mẫu điểm tất ký tự hàng hình hiển thị, ký tự cuối hàng CRTC tiếp tục gửi địa hàng-cột (hàng=0, cột=0) đến nhớ hiển thị, địa dòng mẫu điểm ảnh 1(dòng mẫu điểm 1) cho ROM Bộ nhớ hiển thị gửi mã ASCII ký tự A cho ROM, ROM xuất dòng mẫu điểm ảnh ký tự A Dòng ký tự B xuất theo cách tương tự Các dòng điểm ảnh ký tự hiển thị lên hình tất dòng điểm ảnh hàng văn (hàng 0) hiển thị hình Các hàng văn hiển thị theo phương pháp nói Trên thực tế hoạt động CRTC phức tạp CRTC phải có khả hiển thị chế độ đồ họa CRTC phải theo dõi thông tin thuộc tính ký tự hiển thị, phải tạo điểm nháy CRTC phải tạo hai tín hiệu đồng ảnh ngang - dọc làm tươi hình Tần số làm tươi tối thiểu 50 Hz 171 Nguyễn Trung Đồng – Tel 0983 410 866 Chương VIII Kỹ thuật công cụ phát triển phần mềm máy tính Trong hầu hết ứng dụng máy tính, dù máy Vi tính, máy tính Mini hay MainFrame, phần mềm đóng vai trò vô quan trọng Đối tượng phần mềm đòi hỏi phần cứng thực thi công việc (ứng dụng) cụ thể Ứng dụng lớn,càng phức tạp, hoàn thiện phần mềm đòi hỏi đầu tư cao trí tuệ công sức Do vậy, ngày đòi hỏi "những công cụ" phát triển phần mềm với tính cao tiện dụng Dĩ nhiên, sử dụng hết khả mà công cụ phát triển phần mềm tạo không nắm vững kỹ thuật lập trình thích hợp Điều ví người sử dụng ô tô, xe máy mà hệ thống điện hoạt động Khai thác triệt để tiềm công cụ phát triển phần mềm, ta xây dựng chương trình ứng dụng tuyệt vời hơn, quản lý khai thác tính tài nguyên hệ thống máy tín cách hữu hiệu nhiều Quá trình phát triển phần mềm từ toán xác định phần mềm cài dặt hoạt đọng chia thành giai đoạn sau: a) Đặt vấn đề (xác nhận vấn đề): Trước giải vấn đề, người lập trình cần xác định xem, liệu vấn đề giải nhờ chương trình máy tính hay không Phải thấy máy tính “vạn năng” đến mức giải tất vấn đề nảy sinh thực tiễn, chí làm cho việc thêm phức tạp b) Xác định phương pháp giải vấn đề: Đây bước tìm thuật giải (Algorithm) tối ưu cho vấn đề đặt Người lập trình phải tìm lựa chọn từ nhiều giải pháp giải pháp tốt nhất, kinh tế để thực Không tìm giải thuật tốt mà phải tìm ngôn ngữ lập trình phù hợp để giải vấn đề c) Thực giải pháp: Phương pháp giải vấn đề thường xác nhận qua bước theo lưu đồ Lưu đồ cách thể tường minh bước thực chương trình hệ thống máy tính, đồng thời giúp người lập trình định hướng tốt viết chương trình d) Viết chương trình : Bản thân lưu đồ cho thấy rõ giải pháp giải vấn đề theo quan điểm lập trình Việc chuyển từ lưu đồ sang ngôn ngữ chương trình bước dễ dàng nhiều so với cách viết chương trình lưu đồ Đây bước cụ thể hóa lưu đồ nhờ thực lệnh, bước thực tế hóa giải pháp thực vấn đề 172 Nguyễn Trung Đồng – Tel 0983 410 866 e) Kiểm tra gỡ rối: Sau cài đặt, việc kiểm tra tính xác vô quan trọng Những sai sót phải phát hiệu chỉnh, từ thuật giải Việc gỡ rối chương trình tức thực bước chương trình, phát sai sót ẩn, hiệu chỉnh sai sót Người lập trình cần tuân thủ năm bước phát triển chương trình Kỹ thuật công cụ lập trình trình bày sau gợi ý ban đầu Các khái niệm thuật giải (Algoritnm), lưu đồ (Flowchart) cấu trúc chương trình (Program Structure) khái niệm quan trọng sở để phát triển chương trình cho máy tính Các công cụ trợ giúp hợp ngữ (Assembler), chương trình dịch (Compiler), chương trình thông dịch (Interpreter), chương trình giám sát (Monitor), chương trình mô (Simulator), hệ điều hành (Operating System) giúp người lập trình "giao tiếp" với tài nguyên máy tính phục vụ công việc lập trình Thuật giải lưu đồ Thuật giải thuật ngữ mô tả tập hợp thủ tục cần thiết, hay gọi phương pháp để giải toán Lưu đồ biểu diễn đồ thị định nghĩa, phương pháp phân tích, giải toán Các ký hiệu sử dụng thường phép toán, phương thức xử lý, yêu cầu nhập xuất, định, ngắt, v.v… Thiết kế thuật giải hay lưu đồ bước trình xây dựng chương trình Ví dụ: Viết chương trình chuyển khối liệu nhớ sang vị trí Thuật giải tổng quát gồm bước sau: Bước Đọc byte liệu từ khối liệu nguồn Bước Ghi byte liệu vừa đọc vào vị trí tương ứng khối liệu đích START Đọc byte từ khối liệu nguồn Bước Kiểm tra xem chuyển hết khối chưa? Nếu hết, dừng chương trình; chưa hết, quay lại bước Ghi byte liệu vừa đọc vào khối DL đích Lưu đồ chương trình thể Hình VIII.1 Thực tế, thuật giải vừa nêu sơ sài, chưa thể yêu cầu cụ thể viết chương trình cho máy tính No Tất byte liệu chuyển hết? Yes STOP 173 Nguyễn Trung Đồng – Tel 0983 410 866 Chúng ta tham khảo thêm thuật giải đầy đủ bao gồm bước sau đây: Bước Đặt giá trị khởi đầu cho trỏ vào địa đầu khối liệu nguồn (Pointer1) Bước Đặt giá trị khởi đầu cho trỏ vào địa đầu khối liệu đích (Pointer2) Bước Đặt giá trị đếm số byte cần di chuyển Bước Đọc byte từ khối liệu nguồn vị trí trỏ (Poniter1) Bước Ghi byte vừa đọc vào khối liệu đích vào vị trí trỏ (Pointer2) Bước Tăng giá trị trỏ Pointer1 lên 1, (chỉ vào byte kế tiếp) Bước Tăng giá trị trỏ Pointer2 lên 1, (chỉ vào vị trí kế tiếp) Bước Giảm giá trị đếm số lượng byte cần di chuyển Bước Kiểm tra nội dung đếm, 0, dừng lại, khác 0, quay lại thực tiếp từ bước Trong thực tế, tồn cách thể lưu đồ chương trình dạng sau: - Lưu đồ tổng quát (general flowchart): sử dụng để mô tả thuật giải cách tổng quan, sơ luợc - Lưu đồ mức thuật giải (Algorithmic-level flowchart): mô tả bước cụ thể thuật giải, dạng lời giải thích tác vụ cụ thể cần thực bước - Lưu đồ mức lệnh (Instruction-level flowchart): mô tả bước cụ thể thuật giải, khối lưu đồ sử dụng lệnh cụ thể thay cho lời giải thích tác vụ Lập trình hợp ngữ (Assemblers) Hợp ngữ (Assembler) công cụ mạnh thường sử dụng để phát triển chương trình dạng mã máy Hợp ngữ chương trình dịch mã lệnh gợi nhớ (mnemonics) ký hiệu (symbols) thành dạng mã nhị phân mà máy tính thực thi Hợp ngữ phần mềm (SoftWare) máy tính Có thể hình dung đầu vào (input) hợp ngữ tập hợp lệnh chương trình dùng mã gợi nhớ, đầu (output) chuỗi byte liệu 174 Nguyễn Trung Đồng – Tel 0983 410 866 nhị phân biểu diễn mã lệnh máy (người lập trình đọc dạng chữ số thập phân, hexa octal) Mã lệnh liệu cần xử lý xếp theo xác định kể địa cụ thể vùng nhớ mà nhóm byte mã lệnh hay liệu lưu giữ Đầu vào hợp ngữ gọi mã nguồn (source code), đầu hợp ngữ mã đối tượng (object code) Quá trình dịch từ mã nguồn sang mã đối tượng gọi trình dịch hợp ngữ (assembly) Symbol Table Các ký tự tham chiếu Source File Assembler Object File Chương trình ngôn ngữ Assembly Dịch Chương trình Ngôn ngữ máy Hình VIII.1 Hoạt động Assembler Program Listing Chẩn đoán,theo dõi Tác vụ Assembler dịch chương trình từ File nguồn viết mã lệnh gợi nhớ (assembly language program) thành tập mã thích hợp cho CPU thực thi (Machine language program) Quá trình dịch gọi Assembly Cũng cần nhắc lại rằng: lệnh gợi nhớ (mnemonics) tập lệnh loại CPU, hãng chế tạo CPU cung cấp Các lệnh tạo phù hợp với cấu trúc tính loại CPU Tuỳ theo kiến trúc RICS hay CICS CPU mà tập lệnh khác ký tự mnemonics phép toán mà lệnh có khả xử lý Có hai thể loại Assembler assembler tuyệt đối (absolute assembler) assembler tái định vị (relocatable assembler) Assembler tuyệt đối tạo tệp mã đối tượng có tham chiếu địa tuyệt đối, nghĩa tệp mã đối tượng tạo, nạp vào máy tính thực chương trình địa cài Assembler tái định vị tạo tệp mã đối tượng có địa tương đối, tạo địa tuyệt đối chương trình khác gọi chương trình định vị (locator) Một ưu điểm chương trình assembler khả tạo macro Có thể coi Macro khả thêm lệnh cho tập lệnh CPU, sau xây dựng, sử dụng lệnh mnemonic 175 Nguyễn Trung Đồng – Tel 0983 410 866 Chương trình dịch (Compilers) Chương trình dịch Compiler nói họ với Assembler chức Chúng chương trình dịch Mã đối tượng chương trình Assembler Compiler tạo hoàn toàn đồng khác biệt Sự khác chủ yếu rõ File nguồn File nguồn Assembler mã lệnh dạng mnemonics, đòi hỏi người lập trình nắm vững cấu trúc CPU phương thức định địa lệnh Chương trình thường gọi chương trình mức thấp (Low-level program) Khi người lập trình sử dụng ngôn ngữ lập trình bậc cao hơn, thông thường, họ không cần biết phần cứng ghi, đồ nhớ, đồ thiết bị vào/ra, v.v… Chương trình viết giống sử dụng Anh ngữ (English-like) thông qua phát biểu (Statements) đầu vào chương trình dịch Compiler Trong chương trình mức Assembler hướng thiết bị (machine oriented) ngôn ngữ mức compiler (compiler-level) hướng nhiệm vụ (task-oriented) Một lập trình viên viết chương trình Assembler hiểu rõ cấu trúc tập lệnh CPU, mức compiler, hiểu mục đích công việc thông qua cấu trúc chương trình Cũng giống hợp ngữ, có hai dạng compiler thường trú (resident compiler) cross compiler Sự khác chúng giống hai loại hợp ngữ nêu Liên kết định vị (Linkers and Locators) Như nói trên, chương trình dịch thường cho ta tệp mã đối tượng chưa có địa tuyệt đối Địa mã thường tham chiếu tới vị trí nhớ thông thường có địa 0, nên gọi tương đối Ví tính chất này, mã đối tượng trở thành loại mã có khả tái định vị Dĩ nhiên, địa gán vào mã đối tượng tương đối, chương trình cài vào vị trí nhớ để thực Locators làm nhiệm vụ coi mã đối tượng tái định vị đầu vào, gán địa tuyệt đối tương ứng với vị trí mà người dùng xác định để tẫom đối tượng tuyệt đối Liên kết (Linkers) tạo thuận lợi lớn cho người lập trình: cho phép chương trình vùa sử dụng ngôn ngữ bậc cao với hợp ngữ, nhằm đạt tốc độ cao thực chương trình Linkers làm nhiệm vụ liên kết mã đối tượng tương đối assembler compiler tạo thành mã đối tượng tương đối có khả tái định vị tham chiếu vị trí nhớ theo yêu cầu người dùng Trong tực tế, Linkers dùng để tạo 176 Nguyễn Trung Đồng – Tel 0983 410 866 khả sử dụng thư viện chương trình Macro có sẵn dạng thư viện tiện ích (Utility Library) viết chương trình hợp ngữ Chương trình thông dịch (Interpreters) Cũng tương tự compilers, chương trình thông dịch (interpreters) sử dụng ngôn ngữ bậc cao để viết chương trình Điều khác chỗ interpreters không tạo mã đối tượng Chương trình interpreters tồn với chương trình người dùng, phát biểu (statement) chương trình người dùng thông dịch trực tiếp thành mã máy lệnh CPU thực tức thời Dễ thấy chương trình không tốn nhiều nhớ thực chậm nhiều sử dụng Compilers Quá trình phát tiển phần mềm bao gồm giải vấn đề gỡ rối thường sủ dụng interpreters Khi "phần rối " gỡ, chương trình dịch thành mã đối tượng Hệ điều hành (Operating Systems) Hệ điều hành công cụ tạo khả cho người dùng truy xuất vào tài nguyên phần cứng phần mềm máy tính Thông thường hệ điều hành tập hợp môđun phần mềm tạo điều kiện cho người dùng máy tính truy xuất vào tập hợp lệnh (comands) tiện ích Sự tiện dụng hệ điều hành, từ đơn giản chương trình giám sát (Monitors) đến phiên DOS Windows Microsoft quen thuộc người dùng Có thể coi Monitor hệ điều hành dạng đơn giản nhất, độ lớn khoảng đến 2KB đặt ROM Nó cho phép người dùng nạp chương trình vào RAM, truy xuất vào ghi CPU,… thực chương trình, sửa chữa chương trình cần thiết, thường cài đặt Design Kit 177 Nguyễn Trung Đồng – Tel 0983 410 866 TÀI LIỆU THAM KHẢO   David Hergert, Nancy Thibeault PC Architecture from Assembly langueage to C – Prentice-Hall, Inc New Jersey 1997   Victor M Roooney, Amin R Issmail Microproccessors and Microcomputer – Macmillan Publisshing Company – New York 1984   Kai Hwang Advanced Computer Architecture Parallelism – Scalability –Programmability – McGraw-Hill International Editions – 1993   Christopher L Morgan & Mitchell Waite 8086/8088 16-Bit Microproccessor Primer – McGraw-Hill, Inc 1982   James L., Turley Advanced 80386 Programming Techniques Osborne McGraw-Hill – Berkeley, California 1988   Andrew S Tanenbaun Structured Computer Organization – Prentice Hall 1990   James M Feldman, Charles T Retter Computer Architecture – MITPress & McGraw Hill, Singapore 1994   Vũ Chấn Hưng Giáo trình Kiến trúc máy tính – NXB Giao thông vận tải - Hà Nội 2002   Đặng Thành Phu Turbo Assembler & ứng dụng – NXB Khoa học kỹ thuật – Hà Nội 2007 10 Nguyễn Thuý Vân Kỹ thuật số - NXB Khoa học kỹ thuật – Hà Nội 1999 11 Nguyễn Trung Đồng Giáo trình Kỹ thuật Vi xử lý - Tập giảng 12 Nguyễn Đình Việt Kiến trúc máy tính – NXB Đại học Quốc gia Hà Nội 2006 13 Giáo trình Kỹ thuật Vi xử lý (2 tập) – Biên soạn TS Hồ Khánh Lâm – NXB Bưu điện – Hà Nội 2007 [14] Parham Behrooz Computer Architecture: From Microprocessors to Supercomputers, Oxford University Press, 556 + xx pp., February 2005, rev 2007 (ISBN 0-19-515455-X) 178 Nguyễn Trung Đồng – Tel 0983 410 866 MỤC LỤC LỜI NÓI ĐẦU Chương I Những kiến thức sở Một số phần tử Logic Một số khái niệm sở 2.1 Mạch logic tổ hợp (Combinational Circuit) 2.2 Mạch (Sequencial Circuit) 2.3 Máy hữu hạn (Finite State Machine) 2.4 Thanh ghi (Register) 2.5 Mạch cộng hai số liệu nhị phân (Binary Adder) Chương II Giới thiệu chung 12 Máy tính kiến trúc máy tính 12 1.1 Mở đầu 12 1.2 Chức máy tính 18 1.3 Kiến trúc máy tính cấu trúc máy tính 20 1.4 Kiến trúc máy tính Von Neumann 21 Tổng quan kiến trúc máy tính 22 2.1 Liên kết khối khối chức 22 2.1.1 Bộ xử lý trung tâm (CPU) nhớ 22 2.1.2 CPU, nhớ thiết bị vào/ra 23 2.1.3 CPU, nhớ, thiết bị vào khả truy cập trực tiếp nhớ 24 Hình II.7 CPU, nhớ, thiết bị vào khả sử dụng ngắt 24 2.1.4 CPU, nhớ, thiết bị vào khả sử dụng ngắt 25 2.1.5 Khối xung nhịp (Clock) khối điều khiển (Control) 25 2.2 Kiến trúc máy tính nhìn từ góc độ cấu trúc 25 Biểu diễn thông tin máy tính 27 3.1 Mã hoá thông tin không số 27 3.2 Hệ đếm thập phân 28 3.3 Hệ đếm nhị phân 29 Chuyển đổi hệ đếm 29 4.1 Chuyển đổi hệ thập phân sang hệ nhị phân 29 4.1.1 Chuyển đổi phần nguyên 29 4.1.2 Chuyển đổi phần thập phân 30 4.2 Chuyển đổi hệ nhị phân sang hệ Hexa, Octal 30 179 Nguyễn Trung Đồng – Tel 0983 410 866 Các phép tính với số nhị phân 31 5.1 Phép cộng 32 5.2 Phép trừ 32 5.3 Phép nhân 32 5.4 Phép chia 33 Biểu diễn liệu số máy tính 33 6.1 Biểu diễn số số âm 33 6.2 Biểu diễn số dấu phẩy động (Floatting Point Number) 35 6.2.1 Dạng đơn giản 35 6.2.2 Dạng xác gấp đôi 36 Chương III Kiến trúc Trung tâm xử lý (CPU) 37 Kiến trúc CPU 37 1.1 Chức kiến trúc CPU 37 1.2 Kiến trúc ALU 39 Phát triển kiến trúc CPU 43 2.1 Khái quát 43 2.2 Tổ chức ghi CPU họ x86 45 Kiến trúc CU – Control Unit 52 3.1 Khái quát 52 3.3 Chức CU 58 3.4 Kiến trúc CU 59 Vài nét Kiến trúc CPU Pentium Intel® 61 4.1 Vai trò chipset máy tính 62 4.2 Vấn đề xung nhịp (Clock) 63 4.3 Kỹ thuật đường ống (Pipeline) xử lý song song mức lệnh 65 4.4 Về kiến trúc RISC, CISC 67 Chương IV Chương trình thực chương trình 70 Tổng quan lập chương trình cho máy tính 70 Lệnh thực thi lệnh 71 2.1 Kiến trúc lệnh 71 2.1 Tập lệnh máy tính 72 Kiến trúc ghi CPU 74 4.1 Các bước thực thi chưong trình 76 4.2 Thực thi lệnh thực chương trình 77 4.3 Chu kỳ đọc lệnh 78 4.4 Thanh ghi đệm liệu (MBR) ghi địa nhớ (MAR) 78 4.5 Thực lệnh 79 180 Nguyễn Trung Đồng – Tel 0983 410 866 4.6 Bộ giải mã lệnh (ID) 79 4.7 Giải mã lệnh 80 4.8 Nhập toán hạng, xử lý lưu liệu 80 Ngắt chế ngắt (Interupt) 84 5.1 Phân loại ngắt 85 5.2 Bảng véc tơ ngắt 86 5.2 Cơ chế gọi chương trình 87 Lệnh hai địa 89 6.1 Các chế độ thực lệnh hai địa 90 6.2 Kiến trúc RISC CISC 90 6.3 Kiến trúc xử lý song song 91 Các phương pháp đánh địa ô nhớ 92 7.1 Quản lý nhớ 92 7.2 Quản lý nhớ, mode địa CPU 8086 94 7.3 Biểu diễn lệnh liệu 99 7.4 Yêu cầu phương pháp đánh địa lệnh 100 7.5 Phương pháp đánh địa trực tiếp 100 7.6 Phương pháp đánh địa tức thời 101 7.7 Phương pháp đánh địa tương đối 101 7.8 Phương pháp đánh địa gián tiếp 102 7.9 Mã hóa phương pháp đánh địa 102 Chương V Liên kết thành phần chức - bus 104 Khái niệm BUS máy tính 104 Bus hệ thống 105 2.1 Bus địa 106 2.2 Bus liệu 106 2.3 Định thời hoạt động Ghi/Đọc giao tiếp CPU với nhớ 107 2.3 Giao tiếp CPU với thiết bị ngoại vi 109 2.4 Bus điều khiển 110 2.5 Truy nhập trực tiếp nhớ ngắt 111 Hoạt động bus 113 3.1 Hoạt động bus 113 3.2 Kết nối thiết bị lên bus 113 3.3 Phân cấp bus 114 3.4 Các đặc trưng thiết kế bus 115 3.4.1 Kiểu bus 115 3.4.2 Điều khiển 116 3.4.3 Chu kỳ bus 116 181 Nguyễn Trung Đồng – Tel 0983 410 866 Chương VI Kiến trúc nhớ 119 Bộ nhớ máy tính 119 1.1 Phần tử nhớ, vi mạch nhớ, từ nhớ dung lượng nhớ 119 1.2 Xây dựng nhớ với chip SRAM 122 1.2.1 Tổ chức nhớ với DRAM 123 1.2.2 Phân loại chip nhớ ROM, RAM 124 1.2.3 Tổ chức nhớ vật lý 125 Vấn đề quản lý nhớ 127 2.1 Chiến lược phân trang (Paging) 127 2.2 Chế độ bảo vệ (Protected Mode) quản lý nhớ chế độ bảo vệ 131 2.2.1 Các mức đặc quyền luật quyền truy nhập 132 2.2.2 Quản lý nhớ theo phân đoạn chế độ bảo vệ 133 2.3 Cơ chế hoạt động đa nhiệm 142 2.4 Tổ chức nhớ cache 143 2.5 Trường hợp gặp lệnh rẽ nhánh 145 2.6 Các phương thức đánh địa cache 145 2.7 Cache liên hợp cache ánh xạ trực tiếp 148 Bộ nhớ máy tính 154 3.1 Đĩa từ 155 3.2 Đĩa quang 155 3.3 Bộ nhớ Flash 155 Chương VII Thiết bị ngoại vi máy tính 157 Bàn phím Hex Keyboard 159 Ghép nối bàn phím với máy tính 163 2.1 Hệ thống bàn phím máy vi tính 163 2.2 Quá trình truyền liệu từ bàn phím cho CPU 164 Mạch điều khiển lập trình thị 7-segments 165 Màn hình (Monitor) 167 4.1 Màn hình ống tia âm cực CRT (Cathode Ray Tube) 167 4.2 Ghép nối hình với máy tính 168 4.3 Bộ điều khiển hình CRTC 169 Chương VIII Kỹ thuật công cụ phát triển phần mềm máy tính 172 Thuật giải lưu đồ 173 Lập trình hợp ngữ (Assemblers) 174 Chương trình dịch (Compilers) 176 Liên kết định vị (Linkers and Locators) 176 182 Nguyễn Trung Đồng – Tel 0983 410 866 Chương trình thông dịch (Interpreters) 177 Hệ điều hành (Operating Systems) 177 TÀI LIỆU THAM KHẢO 178 MỤC LỤC 179 183 Nguyễn Trung Đồng – Tel 0983 410 866 [...]... Logic Hình II.5 Kiến trúc Máy tính nhìn từ góc độ cấu trúc Interrupt Request Signals 1.3 Kiến trúc máy tính và cấu trúc máy tính Để tìm hiểu kiến trúc máy tính, cần phân biệt rõ sự khác nhau cơ bản, thuộc về nguyên lý giữa kiến trúc (architecture) và tổ chức và cấu trúc (organization & structure) của một máy tính:  Kiến trúc máy tính nghiên cứu những thuộc tính của một hệ thống mà người lập trình có thể... Thuật ngữ Kiến trúc máy tính được dùng để mô tả sơ đồ tổ chức Hình II.8 Kiến trúc Máy tính nhìn từ góc độ cấu trúc nguyên lý Thuật ngữ được dùng nhằm minh hoạ những khối chức năng cần thiết và các kênh truyền dẫn liên kết chúng để cấu thành một máy tính 26 Nguyễn Trung Đồng – Tel 0983 410 866 Trong các chương tiếp theo, chúng ta sẽ tìm hiểu phần kiến trúc các BUS hệ thống, kiến trúc CPU, kiến trúc khối... lĩnh vực máy PC, người ta thường không phân biệt rõ ràng giữa kiến trúc và cấu trúc vì sự khác biệt giữa hai khái niệm này đã rút ngắn đáng kể Sự phát triển của công nghệ không chỉ tác động lên cấu trúc mà còn tạo điều kiện phát triển các kiến trúc mạnh hơn và nhiều tính năng hơn; và do đó tác động qua lại giữa kiến trúc và cấu trúc thường xuyên hơn Ngoài kiến trúc máy tính và cấu trúc máy tính còn... giống nhau Kiến trúc máy tính thường được ứng dụng trong khoảng thời gian dài, hàng chục năm; trong khi cấu trúc thường thay đổi cùng với sự phát triển của công nghệ Trên cùng một kiến trúc, các hãng chế tạo máy tính có thể đưa ra nhiều loại máy tính khác nhau về cấu trúc, do đó các đặc trưng về hiệu suất, giá thành cũng khác nhau Các sản phẩm của IBM là một ví dụ điển hình Kiến trúc máy tính của IBM... lĩnh vực là kỹ thuật máy tính nghiên cứu việc xây dựng cụ thể các hệ thống: chẳng hạn như độ dài dây dẫn tạo BUS, kích cỡ các vi mạch, v.v Người lập trình thường cần đến kiến thức về kiến trúc, đôi khi cần những hiểu biết về cấu trúc, nhưng thường rất ít khi cần đến những hiểu biết về kỹ thuật máy tính Hiểu kiến trúc máy tính có thể giúp người lập trình nhận biết khi nào chương trình của mình tạo ra... người lập trình có thể nhìn thấy được, những thuộc tính quyết định trực tiếp đến việc thực thi một chương trình tính toán, xử lý dữ liệu  Cấu trúc máy tính nghiên cứu về các thành phần chức năng và sự kết nối giữa chúng để tạo nên một máy tính, nhằm thực hiện những chức năng và tính năng kỹ thuật của kiến trúc Những thuộc tính liên quan đến kiến trúc bao gồm tập lệnh cơ bản mà CPU có thể thực hiện,... đánh địa chỉ ô nhớ, v.v Cấu trúc máy tính lại bao gồm các thuộc tính kỹ thuật mà người lập trình không nhận biết được như các tín hiệu điều khiển, giao diện giữa máy tính và thiết bị ngoại vi, công nghệ xây dựng bộ nhớ, v.v… 20 Nguyễn Trung Đồng – Tel 0983 410 866 Chẳng hạn việc quyết định máy tính có cần một lệnh cơ bản để thực hiện phép nhân hay không là vấn đề về kiến trúc Còn thể hiện lệnh nhân... đến lệnh cuối cùng 2 Tổng quan về kiến trúc máy tính Trên cơ sở nguyên lý kiến trúc Von Neumann, máy tính là một hệ thống bao gồm đơn vị xử lý trung tâm, bộ nhớ và các thiết bị vào/ra được kết nối với nhau Hệ thống đường truyền dẫn liên kết các khối là một trong những vấn đề mà các hãng chế tạo máy tính gặp nhiều nan giải nhất Để nắm được những kiến thức cơ bản về kiến trúc, chúng ta sẽ bắt đầu bằng việc... cầu (lệnh hoặc dữ liệu) vào máy tính bằng cách sử dụng thiết bị nhập dữ liệu, máy tính xử lý dữ liệu và sau khi thực hiện xong gửi trả kết quả ra thiết bị xuất dữ liệu Ở mức độ cao hơn con người sử dụng máy tính để điều khiển một đối tượng thứ ba (máy móc hoặc thiết bị) Con người gửi tín hiệu điều khiển vào máy tính, máy tính xử lý các dữ liệu được cung 17 Nguyễn Trung Đồng – Tel 0983 410 866 cấp và... tử trong máy tính Khi cấp nguồn, chương trình khởi tạo hệ thống sẽ nạp hệ điều hành 12 Nguyễn Trung Đồng – Tel 0983 410 866 (boot hệ thống), ngôn ngữ lập trình sẽ được tải vào bộ nhớ nhờ hệ điều hành Ở mức trên cùng, máy tính có thể thực thi các chương trình ứng dụng Các chương trình ứng dụng được sử dụng nhiều như tạo các bảng tính, tạo văn bản, các bản vẽ, …, được viết bằng các ngôn ngữ lập trình khác ... Kiến trúc Máy tính nhìn từ góc độ cấu trúc Interrupt Request Signals 1.3 Kiến trúc máy tính cấu trúc máy tính Để tìm hiểu kiến trúc máy tính, cần phân biệt rõ khác bản, thuộc nguyên lý kiến trúc. .. lên cấu trúc mà tạo điều kiện phát triển kiến trúc mạnh nhiều tính hơn; tác động qua lại kiến trúc cấu trúc thường xuyên Ngoài kiến trúc máy tính cấu trúc máy tính có lĩnh vực kỹ thuật máy tính. .. động máy tính đồng hoá 2.2 Kiến trúc máy tính nhìn từ góc độ cấu trúc Một hệ thống máy tính phải có tính sau: Khả thực Vào/Ra - khâu nối hay giao diện người sử dụng máy tính Khả Ngắt - cho phép máy

Ngày đăng: 03/12/2015, 15:55

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan