Bài giảng Cấu trúc máy tính

Tài liệu Bài giảng Cấu trúc máy tính: BÀI GIẢNG CẤU TRÚC MÁY TÍNH 1 CHƢƠNG I: GIỚI THIỆU CHUNG Mục tiêu của chƣơng Giúp sinh viên phân biệt được các khái niệm cơ bản liên quan đến máy tính, các cách gọi tên máy tính theo một tiêu chí cụ thể. Hiểu rõ ý nghĩa và lịch sử phát triển của Máy tính. Tóm tắt Nội dung chương này trình bày các khái niệm thường gặp như Máy tính, Phần mềm, Phần cứng, ... Giới thiệu các cách phân loại theo các tiêu chí khác nhau để tránh nhầm lẫn trong cách gọi tên một máy tính. Giới thiệu nhanh về lịch sử phát triển. 1.1. Khái niệm chung Máy tính Máy tính (computer) là một thiết bị có khả năng thao tác (lưu trữ, xử lý) trên dữ liệu (thông tin) theo một cách phức tạp và lập trình được. Việc tính toán của nó thực hiện theo một chương trình. Dữ liệu có thể được biểu diễn dưới rất nhiều hình thức của thông tin như: số, ký tự, hình ảnh, âm thanh, … Trước khi phát minh ra máy tính, thuật ngữ computer thường được dùng để ám chỉ một người chuyên làm nhiệm vụ tính toán (...

pdf106 trang | Chia sẻ: hunglv | Lượt xem: 1746 | Lượt tải: 3download
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Cấu trúc máy tính, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
BÀI GIẢNG CẤU TRÚC MÁY TÍNH 1 CHƢƠNG I: GIỚI THIỆU CHUNG Mục tiêu của chƣơng Giúp sinh viên phân biệt được các khái niệm cơ bản liên quan đến máy tính, các cách gọi tên máy tính theo một tiêu chí cụ thể. Hiểu rõ ý nghĩa và lịch sử phát triển của Máy tính. Tĩm tắt Nội dung chương này trình bày các khái niệm thường gặp như Máy tính, Phần mềm, Phần cứng, ... Giới thiệu các cách phân loại theo các tiêu chí khác nhau để tránh nhầm lẫn trong cách gọi tên một máy tính. Giới thiệu nhanh về lịch sử phát triển. 1.1. Khái niệm chung Máy tính Máy tính (computer) là một thiết bị cĩ khả năng thao tác (lưu trữ, xử lý) trên dữ liệu (thơng tin) theo một cách phức tạp và lập trình được. Việc tính tốn của nĩ thực hiện theo một chương trình. Dữ liệu cĩ thể được biểu diễn dưới rất nhiều hình thức của thơng tin như: số, ký tự, hình ảnh, âm thanh, … Trước khi phát minh ra máy tính, thuật ngữ computer thường được dùng để ám chỉ một người chuyên làm nhiệm vụ tính tốn (human computer)  Khái niệm chƣơng trình (program): Chương trình là dãy các câu lệnh trong bộ nhớ, nhằm mục đích hướng dẫn máy tính thực hiện một cơng việc cụ thể nào đấy.  Khái niệm phần mềm (software): Bao gồm các thuật tốn và các biểu diễn cho máy tính của chúng ta, đĩ chính là các chương trình. Chương trình cĩ thể được biểu diễn (lưu trữ) trên bìa đục lỗ, băng từ, đĩa từ, … hay các mơi trường khác, tuy nhiên cái cơ bản nhất của phần mềm chính là tập hợp các câu lệnh (chỉ thị) tạo nên chương trình chứ khơng phải là mơi trường vật lý được sử dụng để ghi (lưu trữ) chương trình. Nhận thơng tin vào Xử lý thơng tin theo chương trình được lưu trong bộ nhớ Đưa thơng tin ra Hình 1: Mổ tả chức năng của Máy tính 2  Phần cứng (Hardware): Chương trình được viết bằng ngơn ngữ máy ở mức 1 cĩ thể được thi hành trực tiếp bởi các mạch điện mà khơng cần một trình thơng dịch hoặc trình biên dịch trung gian nào cả. Các mạch điện như vậy cùng với bộ nhớ và các thiết bị ngoại vi (vào/ra) tạo thành phần cứng máy của tính (hardware). Phần cứng bao gồm các đối tượng hữu hình như các vi mạch (IC), các bảng (board) mạch in, cáp nối, nguồn điện, bộ nhớ, máy đọc bìa, máy in, terminal, … chứ khơng phải là các ý tưởng, các thuật tốn hay các câu lệnh (chỉ thị).  Phần sụn (Firmware): Phần sụn (hay cịn gọi là phần dẻo) là dạng trung gian giữa phần cứng và phần mềm, nĩ là phần mềm được nhúng vào các mạch điện tử trong quá trình chế tạo ra các mạch điện tử này. Firmware được sử dụng khi các chương trình hiếm khi hoặc khơng bao giờ cần thay đổi. Một ví dụ trực quan cho phần sụn chính là ROM BIOS chứa các chương trình khởi động, các dịch vụ vào/ra cơ sở, dữ liệu về cấu hình của hệ thống, … mà chúng đã được tối ưu, hồn chỉnh khơng cần phải thay đổi nữa (ít thay đổi). Hay các phần mềm trong đồ chơi hoặc trong các dụng cụ máy mĩc, điện thoại di động, … Nĩi chung một thao tác được thực hiện bằng phần mềm thì cũng cĩ thể xây dựng phần cứng để thực hiện trực tiếp thao tác đĩ, ngược lại mọi thao tác (các lệnh – chỉ thị) được thực hiện bằng phần cứng thì cũng cĩ thể mơ phỏng bằng phần mềm. Việc quyết định đưa những chức năng nhất định nào vào phần cứng và các chức năng nào vào phần mềm được dựa trên các yếu tố như giá cả, tốc độ, độ tin cậy và tần xuất của sư thay đổi cĩ thể xảy ra. Khơng cĩ những quy tắc bắt buộc quy định một cách rõ ràng rằng phải đưa thao tác X này vào trong phần cứng, cịn thao tác Y phải được thực hiện bằng phần mềm (được lập trình). Những người thiết kế máy tính khác nhau, với những mục tiêu khác nhau cĩ thể thường quyết định khác nhau về vấn đề này. 1.2. Phân loại máy tính Cĩ nhiều phương pháp và cách phân loại khác nhau, ở đây ta nêu lên một số phương pháp phân loại máy tính điện tử. a. Phân loại theo phƣơng pháp truyền thống.  Máy vi tính ( Microcomputer) Một thiết bị hay hệ thống điện tử cĩ khả năng xử lý dữ liệu, dùng để tính tốn hay kiểm sốt các hoạt động mà cĩ thể biểu diễn dưới dạng số hay quy luật logic. 3  Máy tính nhỏ (Minicomputer) Là một dạng máy tính nhỏ cầm tay, với tốc độc trung bình, cĩ khả năng xử lý và thực thi các chương trình cỡ nhỏ và chuyên biệt.  Máy tính lớn (Mainframe Computer) Máy tính cỡ lớn, thường là các máy tính chủ trong các hệ thống mạng của cơng ty hoặc nhà máy  Siêu máy tính (Super Computer) Một siêu máy tính là một máy tính vượt trội trong khả năng và tốc độ xử lý. Thuật ngữ Siêu Tính Tốn được dùng lần đầu trong báo New York World vào năm 1920 để nĩi đến những bảng tính (tabulators) lớn của IBM làm cho trường Đại học Columbia. Siêu máy tính hiện nay cĩ tốc độ xử lý hàng trăm teraflop (một teraflop tương đương với hiệu suất một nghìn tỷ phép tính/giây) hay bằng tổng hiệu suất của 6.000 chiếc máy tính hiện đại nhất hiện nay gộp lại (một máy cĩ tốc độ khoảng từ 3- 3,8 gigaflop). Cĩ thể hiểu siêu máy tính là hệ thống những máy tính làm việc song song. Siêu máy tính Roadrunner của IBM - 2008 Hình 2: Mini Computer Hình 3: Siêu Máy tính của Roadrunner IBM 2008 4 b. Phân loại theo phƣơng pháp hiện đại  Máy tính để bàn (Desktop Computer) Là máy tính cá nhân, hay máy tính đa năng, đáp ứng nhu cầu mọi người sử dụng chung trong các lĩnh vực gia đình, văn phịng, giải trí,.v.v.  Máy chủ (Servers) Phục vụ các yêu cầu từ các máy khách trong hệ thống mạng. Cĩ nhiều loại máy chủ khác nhau như máy chủ WEB, máy chủ dữ liệu, máy chủ tên miền,… Siêu máy tính IBM Blue Gene/L nhanh nhất thế giới - 2006. Cray-2; máy tính nhanh nhất thế giới trong thời gian 1985–1989. Hình 4: Siêu Máy tính Cray Hình 5: Siêu Máy tính IBM năm 2006 5  Máy tính nhúng (Embedded Computer) Máy tính được đặt vào trong một thống lớn, làm nhiệm vụ xử lý thơng tin và điều khiển khiển hoạt động cho một phần hoặc tồn bộ hệ thống. c. Phân loại theo nguyên l xây d ng máy tính Theo phương pháp này máy tính được phân chia thành hai lớp là máy tính tương tự và máy tính số. Mỗi lớp lớn này lại cĩ thể được chia thành các lớp con, ví dụ máy tính đa năng và máy tính chuyên dụng . . .  Máy tính số (Digital Computer) Máy tính số là loại máy tính sử dụng các đại lượng vật lý biến thiên rời rạc (dạng số) để biểu diễn các đại lượng cần tính tốn. Những thơng số cơ bản của máy tính số là: tốc độ hoạt động, hệ thống lệnh và số địa chỉ của các lệnh, các thiết bị nhớ và dung lượng của chúng, tổ hợp các thiết bị vào/ra số liệu, kích thước, . . . Người ta cĩ thể phân loại máy tính số dựa trên một số cơ sở khác nhau, đĩ là cĩ thể là cách thức thi hành một chương trình, là nhiệm vụ mà người thiết kế định ra cho máy tính, . . . Sau đây là ví dụ về sự phân loại trên.  Phân loại máy tính số (MTS) theo cách thức thi hành chƣơng trình - MTS tuần tự: là MTS trong đĩ các chương trình được thi hành từng lệnh một, hết lệnh này đến lệnh khác. - MTS song song: là MST cĩ thể thi hành đồng thời nhiều chương trình. MTS song song cần cĩ nhiều trang thiết bị hơn và phức tạp hơn MTS liên tiếp nhưng cĩ tốc độ tác động cao hơn. - MTS tuần tự - song song: Là loại MST trung gian giữa hai loại máy tính số nêu trên, trong đĩ các phép tính theo mã của chương trình được liên tiếp đưa vào các bộ phận của máy tính, cịn cĩ các bộ phận thi hành các phép tính một cách song song. Hình 6: Máy tính nhúng điều khiển điện và điều khiển ơtơ. 6 - Ngày nay, trong tất cả các máy tính, kể cả loại máy tính được gọi là tuần tự, người ta cũng áp dụng các cơ chế thực hiện song song ở các mức độ khác nhau để nâng cao tốc độ hoạt động chung của máy tính điện tử.  Phân loại máy tính số theo nhiệm vụ mà ngƣời thiết kế định ra cho nĩ - MTS chuyên dụng: Là loại MTS được chế tạo ra để giải quyết một loại bài tốn nhất định, nĩ thường đơn giản và rẻ tiền hơn MTS đa năng nhờ việc cĩ thể giảm bớt một số thành phần của máy tính và thậm chí cả việc rút gọn tập lệnh của bộ vi xử lý của máy. Như các máy tính ứng dụng trong điều khiển Robot, điều khiển máy bay, vệ tinh, ...) - MTS đa năng: Là loại MTS được chế tạo ra để giải một lớp lớn các bài tốn mà thành phần của lớp bài tốn này cĩ thể cịn chưa được nêu đầy để khi thiết kế máy.  Máy tính tƣơng t (Analog Computer) Máy tính tương tự (MTTT) là loại máy tính sử dụng các đại lượng vật lý biến thiên liên tục để biểu diễn các đại lượng cần tính tốn. Đại lượng vật lý đĩ thường là điện áp hoặc dịng điện. Các MTTT vận hành rất thuận tiện, thường đưa ra kết quả dưới dạng đồ thị, đặc biệt với thời gian cực kỳ ngắn (tốc độ thi hành rất cao). MTTT cĩ các nhược điểm chính sau: kết quả cĩ độ chính xác khơng cao lắm, sự hoạt động của nĩ khơng mềm dẻo như MTS, khả năng giải bài tốn phụ thuộc nhiều vào chính phần cứng của máy. Sự khác nhau cơ bản giữa MTTT và MTS là MTS chỉ làm được các phép tính số học cổ điểm như cộng, trừ, nhân, chia; để thực hiện các tổ hợp gồm các phép tính cộng và nhân,… những lệnh mà bộ cộng của MTTT chỉ làm trong nháy mắt thì ở MTS phải cĩ một chương trình đặc biệt để sắp xếp dần dần các phép tính số học chủ yếu thành các tổ hợp cần thiết.  Máy tính lai (Hybrid Computer) Đĩ là loại máy tính kết hợp cả hai nguyên lý số và tương tự, trong hệ thống này cĩ một nửa là số và một nửa là tương tự. Nửa số, về thực chất là một máy tính số GTE Analog Computer EA22 Hình 7: Máy tính tƣơng t Hình 8: GTE Analog Computer EA22 7 hoặc là một tập hợp các phần tử tính tốn số. Nửa tương tự là một máy tính là một máy tính tương tự hoặc là một tập hợp các phần tử tính tốn tương tự. Trong quá trình tính tốn, hai nửa này truyền dữ liệu cho nhau thơng qua các bộ chuyển đổi (convertor). Việc đồng bộ hoạt động của hai nửa cĩ thể do một đơn vị điều khiển riêng hoặc do đơn vị điều khiển của máy tính số đảm nhiệm. 1.3. Lịch sử phát triển của máy tính 1.3.1. Máy tính cơ khí Năm 1942, nhà khoa học Pháp Blaise Pascal xây dựng một máy đầu tiên thực hiện cơng việc tính tốn. Ðây là thiết bị hồn tồn bằng cơ khí sử dụng các bánh răng và cung cấp lực bằng một cánh tay quay. Nĩ chỉ thực hiện được các phép tốn cộng và trừ. 30 năm sau, nhà tốn học Ðức Baron Gottfried Wilherm von Leibniz xây dựng một máy cơ khí làm được phép nhân và chia. Sau đĩ, giáo sư Charles Babbage đã thiết kế và xây dựng máy sai phân (difference engine). Nĩ được thiết kế để chạy một giải thuật đơn: phương pháp sai phân hữu hạn sử dụng các đa thức và ỡung chỉ thực hiện các phép tốn cộng và trừ. Năm 1834, Babbage thiết kế và xây dựng máy phân tích (analytical engine). Máy phân tích cĩ 4 thành phần: bộ lưu trữ (bộ nhớ), bộ tính tốn, thành phần nhập (đầu đọc thẻ đục lỗ) và thành phần xuất (in và đục lỗ). Bộ tính tốn cĩ thể nhận các tốn hạng từ bộ lưu trữ, thực hiện phép tốn cộng, trừ, nhân hay chia chúng và trả kết quả về bộ lưu trữ. Phát triển tiếp theo của máy phân tích là máy đa năng. Máy đọc lệnh từ các thẻ đục lỗ và thực thi chúng. Bằng cách đục lỗ một chương trình khác trên thẻ nhập, máy phân tích cĩ khả năng thực hiện các tính tốn khác. Lập trình viên máy tính dầu tiên là Ada Lovelace đã tạo ra phần mềm cho máy phân tích. 1.3.2. Máy tính đèn diện tử - thế hệ thứ nhất Nam 1943, máy tính số điện tử đầu tiên trên thế giới bắt đầu hoạt động, máy Colossus do Alan Turing thiết kế nhằm thực hiện giải mã các thơng diệp đã mã hĩa trong chiến tranh thế giới thứ 2. Cũng trong năm 1943, Mauchley và Presper Eckert bắt đầu tiến hành xây dựng máy tính ENIAC (Electronic Numerical Integrator And Hình 9: Máy tính cơ khí Hình 10: Bìa đục lỗ 8 Computer). ENIAC gồm 1800 đèn điện tử và 1500 relay, cân nặng 30 tấn, cơng suất tiêu thụ 140 kWh. Nĩ cĩ tất cả 20 thanh ghi, mỗi thanh ghi cĩ thể lưu trữ một số thập phân 10 chữ số. Sau dĩ, John von Neumann thiết kế máy IAS dựa trên cơ sở máy EDVAC, là một phiên bản nâng cao của ENIAC. Máy von Neumman cĩ 5 phần cơ bản: bộ nhớ, đơn vị luận lý số học (ALU – Arithmetich Logic Unit), đơn vị điều khiển chương trình, thiết bị nhập và thiết bị xuất. Bộ nhớ cĩ tất cả 4096 từ, mỗi từ lưu trữ 40 bit. Mỗi từ chứa 2 lệnh 20 bit hay một số nguyên cĩ dấu 39 bit. Mỗi lệnh 20 bit gồm cĩ 8 bit xác định loại lệnh và 12 bit xác định 1 trong 4096 từ nhớ Vào cùng thời gian của máy IAS, các nhà nghiên cứu ở MIT cung dang xây dựng một máy tính, máy Whirlwind 1. Nĩ cĩ từ dài 16 bit và thiết kế để điều khiển thời gian thực. 1.3.3. Máy tính transistor – thế hệ thứ hai Nam 1948, John Bardeen, Walter Brattain và William Shockley phát minh ra transistor đã tạo ra cuộc cách mạng trong linh vực máy tính. Máy tính transistor đầu tiên duợc xây dựng tại MIT, máy TX-0 (Transistorized experimental computer 0), cĩ 16 bit tương tự như Whirlwind 1. Nam 1961, máy tính PDP-1 xuất hiện cĩ 4K từ 18 bit và khoảng thời gian một chu kỳ là 5 µs. Vài nam sau, PDP-8 ra dời cĩ 12 bit nhưng giá thành rẻ hơn PDP-1 rất nhiều (16.000 USD so với 120.000 USD). PDP-8 cĩ một đổi mới đĩ là hình thành một bus đơn gọi là omnibus trong đĩ bus là tập hợp các dây nối song song dùng để kết nối các thành phần của máy tính. Trong khi dĩ, IBM xây dựng một phiên bản của 709 bằng transistor, dĩ là máy tính 7094 cĩ thời gian một chu kỳ là 2 µs và bộ nhớ 32K từ 36 bit. Nam 1964, cơng ty CDC giới thiệu máy 6600 cĩ tốc dộ nhanh hơn 7094 do bên trong CPU cĩ một co chế song song. CPU cĩ vài đơn vị thực hiện phép cộng, các đơn vị khác thực hiện phép nhân, chia và tất cả chúng đều hoạt động song song. Với một cơng việc, máy cĩ khả nang thực thi 10 lệnh dồng thời. 1.3.4. Máy tính IC – thế hệ thứ ba Vi mạch duợc phát minh cho phép đặt vài chục transistor trong một chip đơn. Việc này giúp cho các máy tính xây dựng trên IC nhỏ hơn, nhanh hơn và rẻ hơn so với các máy tính transistor. Lúc này, IBM giới thiệu một sản phẩm đơn, máy Hình 11: Máy tình dùng đèn điện tử 9 System 360, được thiết kế dựa trên các vi mạch. Ðổi mới quan trọng trong 360 là khả nang da lập trình (multiprogramming), cĩ vài chương trình trong bộ nhớ dồng thời để khi một chương trình dang chờ xuất / nhập dữ liệu thì chương trình khác cĩ thể tính tốn. Một dặc trung khác của 360 là khơng gian địa chỉ lớn (thời diểm lúc dĩ), với 224 byte nhớ (16 MB). 1.3.5. Máy tính cá nhân và VLSI – thế hệ thứ tƣ Vào thập niên 80, vi mạch VLSI (Very Large Scale Integrate) cĩ khả năng chứa hàng triệu transistor trên một chip đơn đã được chế tạo. Sự phát triển này dẫn đến việc sản xuất các máy tính nhỏ hơn và nhanh hơn. Do dĩ, giá cả đã giảm xuống đến mức một cá nhân cĩ thể sở hữu một máy tính. Các máy tính cá nhân thường dùng cho việc xử lý các bảng tính và các ứng dụng tương hỗ khác. Các máy tính trong thế hệ này cĩ thể chia thành 5 loại: máy tính cá nhân, máy tính mini, mainframe, siêu máy tính. 10 CHƢƠNG II: HỆ THỐNG MÁY TÍNH Mục tiêu của chƣơng Giúp sinh viên biết và hiểu được chức năng của các thành phần cơ bản trên Máy tính. Từ đĩ cĩ thể xác định được các thành phần đĩ trên một máy tính thực. Đồng thời hiểu được cấu trúc cũng như vai trị quan trọng của bo mạch chủ (Mainboard). Tĩm tắt Nội dung của chương trình bày vắn tắt: Cấu trúc và chức năng của các thành phần trên Máy tính, đưa ra các thuật ngữ gắn với các thành phần đĩ. Nguyên lý làm việc của máy tính. Ý nghĩa, cấu trúc và vai trị của bo mạch chủ. 2.1. Các thành phần cơ bản của máy tính Mơ hình chung của một máy tính Memory CPU Phèi ghÐp vµo ra (I/O) Bus hƯ thèng TB Vµo TB Ra Hình 12: Sơ đồ khối nguyên lý một hệ thống Máy tính 11 Hình 13: Sơ đồ khối một Mainboard 2.1.1. CPU CPU viết tắt của Central Processing Unit, tạm dịch là đơn vị xử lí trung tâm. CPU cĩ thể được xem như não bộ, một trong những phần tử cốt lõi nhất của máy vi tính. Nhiệm vụ chính của CPU là xử lý các chương trình và dữ liệu. CPU cĩ nhiều kiểu dáng khác nhau. Ở hình thức đơn giản nhất, CPU là một con chip với vài chục chân. Phức tạp hơn, CPU được ráp sẵn trong các bộ mạch với hàng trăm con chip khác. Các thành phần cơ bản của CPU  Đơn vị điều khiển (CU:Control Unit): Điều khiển hoạt động của máy tính theo chương trình đã định sẵn.  Đơn vị số học và logic (ALU: Arithmetic And Logic Unit): thực hiện các phép tốn số học và logic trên các dữ liệu cụ thể.  Tập thanh ghi (RF: Register File): Lưu trữ các thơng tin tạm thời phục vụ cho hoạt động của CPU.  Đơn vị nối ghép BUS(BIU: Bus Interface Unit): kết nối và trao đổi thơng tin giữa Bus bên trong và Bus bên ngồi CPU. 12 2.1.2. ộ nhớ trong Là loại bộ nhớ mà CPU cĩ thể truy cập trực tiếp, cĩ tốc độ cao và dung lượng thường nhỏ. Bộ nhớ trong chia làm 2 loại  Bộ nhớ chính (Main Memmory): Như ROM và RAM  Bộ nhớ đệm Cache  RAM (Random Access Memory), hay Bộ nhớ truy cập ngẫu nhiên: Tốc độ truy cập nhanh, lưu trữ giữ liệu tạm thời, dữ liệu sẽ bị mất vĩnh viễn khi khơng cịn nguồn điện cung cấp.  ROM (Read Only Memory), hay Bộ nhớ chỉ đọc: Lưu trữ các chương trình mà khi mất nguồn điện cung cấp sẽ khơng bị (xĩa) mất. Ngày nay cịn cĩ cơng nghệ FlashROM tức bộ nhớ ROM khơng những chỉ đọc mà cịn cĩ thể ghi lại được, nhờ cĩ cơng nghệ này BIOS được cải tiến thành FlashBIOS.  Cache: Cache là tên gọi của bộ nhớ đệm – nơi lưu trữ các dữ liệu nằm chờ các ứng dụng hay phần cứng xử lý. Mục đích của nĩ là để tăng tốc độ xử lý. Cache là một cơ chế lưu trữ tốc độ cao đặc biệt. Nĩ cĩ thể là một vùng lưu trữ của bộ nhớ chính hay một thiết bị lưu trữ tốc độ cao độc lập. Cache cấu tạo bằng bộ nhớ tĩnh (SRAM) cĩ tốc độ cao nhưng đắt tiền thay vì bộ nhớ động (DRAM) cĩ tốc độ thấp hơn và rẻ hơn, được dùng cho bộ nhớ chính. Cơ chế lưu trữ bộ nhớ cache này rất cĩ hiệu quả. Bởi lẽ, hầu hết các chương trình thực tế truy xuất lặp đi lặp lại cùng một dữ liệu hay các lệnh giống nhau. Nhờ lưu trữ các thơng tin này trong Cache, máy tính sẽ khỏi phải truy xuất vào RAM vốn chậm chạp hơn. Một số bộ nhớ cache được tích hợp vào trong kiến trúc của các bộ vi xử lý. Chẳng hạn, CPU Intel đời 80486 cĩ bộ nhớ cache 8 KB, trong khi Pentium là 16 KB. Các bộ nhớ cache nội (internal cache) như thế gọi là Level 1 (L1) Cache (bộ nhớ đệm cấp 1). Các máy tính hiện đại hơn thì cĩ thêm bộ nhớ cache ngoại (external cache) gọi là Level 2 (L2) Cache (bộ nhớ đệm cấp 2). Các cache này nằm giữa CPU và bộ nhớ hệ thống RAM. Sau này, do nhu cầu xử lý nặng hơn và với tốc độ nhanh hơn, các máy chủ (server), máy trạm (workstation) và mới đây là CPU Pentium 4 Extreme Edition được tăng cường thêm bộ nhớ đệm L3 Cache. 13 Hình 14: Vị trí của Cache trong hệ thống 2.1.3. ộ nhớ ngồi Cĩ dung lượng lớn, để lưu các chương trình và dữ liệu lâu dài, như HDD, CDROM, Tape, ... Các loại bộ nhớ dựa trên cơng nghệ FlashROM: Kết hợp với chuẩn giao tiếp máy tính USB (Universal Serial Bus) tạo ra các bộ nhớ máy tính di động thuận tiện và đa năng như: Các thiết bị giao tiếp USB lưu trữ dữ liệu, thiết bị giao tiếp USB chơi nhạc số, chơi video số; khĩa bảo mật qua giao tiếp USB; thẻ nhớ... Dung lượng thiết bị lưu trữ FlashROM đã lên tới 32GB (Samsung cơng bố năm 2005), trong tương lai, cĩ thể FlashROM sẽ dần thay thế các ổ đĩa cứng, các loại đĩa CD, DVD... 2.1.4. Hệ thống vào ra (Input Output System) Giúp máy tính trao đổi thơng tin với thế giới bên ngồi, bao gồm hai hoạt động chính là nhận thơng tin Input và gửi thơng tin ra Output.  Đầu vào (Input): Các bộ phận thu nhập dữ liệu hay mệnh lệnh như là bàn phím, chuột...  Đầu ra (Output): Các bộ phận trả lời, phát tín hiệu, hay thực thi lệnh ra bên ngồi như là màn hình, máy in, loa, ... Thơng qua hệ thống vào ra máy tính cĩ thể trao đổi thơng tin với thiết bị ngồi vi. Các thiết bị ngoại vi cơ bản: o Thiết bị vào: bàn phím, chuột, … o Thiết bị ra: máy in, màn hình,… o Thiết bị nhớ: đĩa từ, quang,…. o Thiết bị truyền thơng: Modem,… 14 2.1.5. Hệ thống bus Hệ thống bus (Bus system) làm nhiệm vụ vận chuyển thơng tin giữa các phần khác nhau trong máy tính (Hệ thống Bus bao gồm bus dữ liệu dùng để vận chuyển dữ liệu từ bộ nhớ tới CPU hoặc ngược lại. Bus địa chỉ dùng để vận chuyển tín hiệu địa chỉ (ơ nhớ hay cổng vào/ra do CPU phát ra. Bus điều khiển dùng để vận chuyển tín hiệu điều khiển do CPU phát ra để điều khiển các khối trong hệ thống hoặc do thiết bị ngoại vi gửi tới CPU yêu cầu thực hiện một cơng việc nào đĩ). 2.2. Hoạt động cơ bản của máy tính 2.2.1. Chạy chƣơng trình Là hoạt động cơ bản của Máy tính. Máy tính lặp đi lặp lại quá trình thực hiện lệnh gồm hai bước cơ bản: o Nhận lệnh (Fetch) o Thực hiện lệnh (Execute)  Chương trình dừng khi: o Mất nguồn o Gặp lệnh dừng o Gặp tình huống khơng giải quyết được(lỗi)  Nhận lệnh (Fetch) o Bắt đầu mỗi chu kỳ lệnh là CPU tiến hành lấy lệnh từ bộ nhớ chính. Trong quá trình lấy và thực hiện lệnh cĩ 2 thanh ghi bên trong CPU mà ta quan tâm đĩ là PC (Program Counter) và thanh ghi IR(Instruction Register). o CPU lấy lệnh từ ngăn nhớ được trỏ bởi PC đưa vào thanh ghi lệnh IR lưu giữ. o Sau mỗi lệnh được nhận thì nội dung của thanh ghi PC tự động tăng để trỏ tới lệnh kế tiếp sẽ được thực hiện.  Thực hiện (Execute) o Bộ xử lý giải mã lệnh đã được nhận và phát tín hiệu điều khiển thực hiện thao tác mà lệnh yêu cầu thơng qua khối điều khiển CU. o Thực hiện trao đổi giữa CPU và bộ nhớ chính o Thực hiện trao đổi giữa CPU và Module I/O. o Xử lý dữ liệu thực hiện các phép tốn số học và logic. o Điều khiển rẽ nhánh. o Kết hợp các thao tác trên. 15 Một số ví dụ về quá trình thực hiện lệnh : Với giả thiết cấu trúc lệnh cĩ dạng như sau: Hình 15: Quy trình th c hiện lệnh Mã lệnh Địa chỉ hay giá trị tốn hạng 16 2.2.2. Hoạt động ngắt Khái niệm chung về ngắt: Ngắt là cơ chế cho phép CPU tạm dừng chương trình đang thực hiện chuyển sang thực hiện một chương trình khác, gọi là chương trình con phục vụ ngắt. Các loại ngắt o Ngắt do lỗi thực hiện chương trình: chia cho 0 o Ngắt do lỗi phần cứng: lỗi RAM o Ngắt do module I/O phát ra tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu Hoạt động của ngắt : Sau khi hồn thành một lệnh, bộ xử lý kiểm tra tín hiệu ngắt. o Nếu khơng cĩ ngắt thì bộ xử lý tiếp tục nhận lệnh tiếp theo. o Nếu cĩ tín hiệu ngắt: - Tạm dừng chương trình đang thực hiện. Cất ngữ cảnh (thơng tin cĩ liên quan đến chương trình đang thực hiện). - Thiết lập bộ đếm chương trình PC trỏ đến chương trình con phục vụ ngắt - Thực hiện chương trình con phục vụ ngắt. - Cuối chương trình con phục vụ ngắt. Khơi phục lại ngữ cảnh và tiếp tục chương trình đang bị tạm dừng. 2.3. Liên kết hệ thống 2.3.1. Hệ thống US Chức năng vận chuyển thơng tin giữa các thành phần trong máy tính, như thơng tin từ CPU tới bộ nhớ, từ CPU tới bộ điều khiển vào ra I/O. Khái niệm US: Bus là tập hợp các đường dây dùng để vận chuyển thơng tin từ thành phần này tới thành phần khác bên trong máy tính. Độ rộng của US : là số đường dây cĩ khả năng vận chuyển các bit thơng tin đồng thời. Phân loại US: theo chức năng ta chia bus ra làm 3 loại: BUS địa chỉ, BUS dữ liệu và BUS điều khiển 17 Hình 16: Liên kết hệ thống thơng qua US  BUS địa chỉ :  Chức năng: dùng để vận chuyển địa chỉ từ CPU đến các Module nhớ hay các Module vào ra, nhằm để xác định ngăn nhớ hay cổng vào ra nào cần truy xuất trao đổi thơng tin. (đây là BUS một chiều).  Độ rộng của BUS địa chỉ (A0, A1,…, An-1). Cho biết khả năng quản lý cực đại số các ngăn nhớ. Nếu sử dụng độ rộng bus địa chỉ n đường thì dung lượng cực đại của bộ nhớ cĩ thể quản lý là 2n ngăn nhớ hay tương đương với 2n byte nhớ (nếu mỗi ngắn nhớ 1 byte)  BUS dữ liệu:  Chức năng: vận chuyển lệnh từ bộ nhớ -> CPU, vận chuyển dữ liệu giữa CPU, bộ nhớ và cổng vào ra.  Độ rộng của Bus dữ liệu (D0, D1,….Dm-1). Cho biết số byte cĩ khả năng trao đổi đồng thời, m=8,16,32,64,128 bit. Ví dụ: 8088 -> m=8 ; 8086 -> m=16 ; 80386 -> m=32 ; Pentium -> m=64 18 Hình 17: Các loại US  BUS điều khiển: Tập hợp các tín hiệu điều khiển gồm cĩ :  Các tín hiệu phát ra từ CPU để điều khiển Module nhớ và Module vào ra.  Các tín hiệu từ Module nhớ, Module vào ra gửi đến CPU yêu cầu.  Ngồi ra cịn là BUS cung cấp nguồn tín hiệu xung nhịp (clock) với các BUS đồng bộ. 2.3.2. Mainboard  Chức năng Trong một hệ thống máy tính cĩ khoảng 10 thiết bị khác nhau như: CPU, RAM, Card Video, Card Sound, Card LAN, HDD, CDROM, FDD, Keyboard, Mouse. Các thiết bị này cĩ tần số làm việc rất khác nhau, ví dụ: Tần số qua chân CPU là 800MHz nhưng qua chân RAM là 400MHz và tần số qua Card Sound chỉ cĩ 66MHz. Ngồi ra số đường mạch (số BUS) cũng khác nhau, vì vậy mà các thiết bị trên khơng thể kết nối trực tiếp với nhau được. Vậy tại sao chúng cĩ thể làm việc với nhau ? Mainboard chính là thiết bị đĩng vai trị trung gian để kết nối tất cả các thiết bị trên hệ thống máy tính liên kết lại với nhau thành một bộ máy thống nhất. 19 Các chức năng của Mainboard:  Gắn kết các thành phần trên một hệ thống máy tính lại với nhau  Điều khiển thay đổi tần số BUS cho phụ hợp với các thành phần khác nhau  Quản lý nguồn cấp cho các thành phần trên Main  Cung cấp xung nhịp chủ (xung Clock) để đồng bộ sự hoạt động của tồn hệ thống Chính vì những chức năng quan trọng trên mà khi Main cĩ sự cố thì máy tính khơng thể hoạt động được. Hình 18: Sơ đồ khối của một Mainboard 20  Các thành phần chính trên Mainboard Hình 19: Các thành phần trên Mainboard  Soket (đế cắm CPU) Cĩ nhiều loại đế cắm cho CPU tuỳ theo chủng loại Mainboard o Socket 370 trên các Mainboard Pentium 3 o Socket 478 trên các Mainboard Pentium 4 Các chân Socket do Chipset bắc điều khiển.  North Bridge (Chipset bắc) o Chipset bắc cĩ nhiệm vụ điều khiển các thành phần cĩ tốc độ cao như CPU, RAM và Card Video o Chipset điều khiển về tốc độ BUS và điều khiển chuyển mạch dữ liệu, đảm bảo cho dữ liệu qua lại giữa các thành phần được thơng suốt và liên tục, khai thác hết được tốc độ của CPU và bộ nhớ RAM o Cĩ thể ví Chipset giống như một nút giao thơng ở một ngã tư, điều khiển chuyển mạch như các đèn xanh đèn đỏ cho phép từng luồng dữ liệu đi qua trong một khoảng thời gian nhất định, cịn điều khiển tốc độ 21 BUS là mỗi hướng của ngã tư khác nhau thì các phương tiện phải chạy theo một tốc độ quy định.  Sourth Bridge (Chipset nam) o Chức năng của chipset nam tương tụ như chipset bắc, nhưng chipset nam điều khiển các thành phần cĩ tốc độ chậm như: Card Sound, Card Net, ổ cứng, ổ CD ROM, các cổng USB, IC SIO và BIOS v v…  ROM BIOS (Read Olly Memory - Basic In Out System) ROM là IC nhớ chỉ đọc, BIOS là chương trình nạp trong ROM do nhà sản xuất Mainboard nạp vào, chương trình BIOS cĩ các chức năng chính sau đây: o Khởi động máy tính, duy trì sự hoạt động của CPU o Kiểm tra lỗi của bộ nhớ RAM và Card Video o Quản lý trình điều khiển cho chipset bắc, chipset nam, IC-SIO và card video onboard o Cung cấp bản cài đặt CMOS SETUP mặc định để máy cĩ thể hoạt động ta chưa thiết lập CMOS  IC SIO (Super In Out) - IC điều khiển các cổng vào ra dữ liệu o SIO điều khiển các thiết bị trên cổng Parallel như máy In, máy Scaner, điều khiển ổ mềm, các cổng Serial như cổng COM, cổng PS/2 o Ngồi ra SIO cịn thực hiện giám sát các bộ phận khác trên Main hoạt động để cung cấp tín hiệu báo sự cố o Tích hợp mạch điều khiển tắt mở nguồn, tạo tín hiệu Reset hệ thống.  Clockgen (Clocking) - Mạch tạo xung Clock o Mạch tạo xung Clock cĩ vai trị quan trọng trên Main, chúng tạo xung nhịp cung cấp cho các thành phần trên Main hoạt động đồng thời đồng bộ sự hoạt động của tồn hệ thống máy tính, nếu mạch Clock bị hỏng thì các thành phần trên Main khơng thể hoạt động được, mạch Clocking hoạt động đầu tiên sau khi Main cĩ nguồn chính cung cấp.  VRM (Vol Regu Module) - Modul ổn áp. o Đây là mạch điều khiển nguồn VCORE cấp cho CPU, mạch cĩ nhiệm vụ biến đổi điện áp 12V/2A thành điện áp khoảng 1,5V và cho dịng lên tới 10A để cấp cho CPU, mạch bao gồm các linh kiện như đèn Mosfet, IC dao động, các mạch lọc L,C  Khe AGP hoặc PCI Express 22 o Khe AGP và PCI Express dùng để gắn Card video, khe AGP hoặc PCI Express do Chipset bắc điều khiển.  Khe RAM o Khe RAM do Chipset bắc điều khiển dùng để gắn bộ nhớ RAM, đây là bộ nhớ trung gian khơng thể thiếu được trong một hệ thống máy tính.  Khe PCI o Khe PCI do Chipset nam điều khiển dùng để gắn các Card mở rộng như Card sound, Card Net …  Cổng IDE o Cổng IDE do Chipset nam điều khiển, cổng IDE dùng để gắn các ổ đĩa như HDD, CDROM, DVD … 23 CHƢƠNG III: IỂU DIỄN DỮ LIỆU VÀ SỐ Mục tiêu của chƣơng Giúp sinh viên hiểu được cách thức biểu diễn và lưu trữ dữ liệu trong máy tính dưới dạng số. Hiểu được các thức kiểm sốt lỗi khi truyền thơng trong hệ thống máy tính thơng qua kỹ thuật mã hố. Tĩm tắt Trình bày các hệ số đếm thường dùng trong máy tính như, hệ thập phân, bát phân, thập lục phân, nhị phân. Cách biểu diễn số thực 3.1. Các hệ đếm cơ bản 3.1.1. Hệ th p phân Hệ thập phân (hay hệ đếm cơ số 10) là một hệ đếm sử dụng 10 ký tự số. Hệ đếm này được dùng rộng rãi trên thế giới. Nguồn gốc của nĩ cĩ thể bắt nguồn từ cơ cấu sinh học của con người, vì mỗi người cĩ 10 ngĩn tay. Hệ thống ký tự các con số dùng để biểu đạt các giá trị trong một hệ đếm. Trong hệ thập phân, 10 ký tự (cịn gọi là con số) khác nhau được dùng để biểu đạt 10 giá trị riêng biệt (0, 1, 2, 3, 4, 5, 6, 7, 8 và 9), tức là 10 con số. Những con số này cịn được dùng cùng với dấu thập phân (ví dụ dấu "phẩy") để định vị phần thập phân sau hàng đơn vị. Con số cịn cĩ thể được dẫn đầu bằng các ký hiệu "+" hay "-" để biểu đạt số dương và số âm. 3.1.2. Hệ nhị phân Hệ nhị phân (hay hệ đếm cơ số 2) là một hệ đếm dùng hai ký tự để biểu đạt một giá trị số, bằng tổng số các lũy thừa của 2. Hai ký tự đĩ thường là 0 và 1; chúng thường được dùng để biểu đạt hai giá trị hiệu điện thế tương ứng (cĩ hiệu điện thế, hoặc hiệu điện thế cao là 1 và khơng cĩ, hoặc thấp là 0). Do cĩ ưu điểm tính tốn đơn giản, dễ dàng thực hiện về mặt vật lý, chẳng hạn như trên các mạch điện tử, hệ nhị phân trở thành một phần kiến tạo căn bản trong các máy tính đương thời. Một số hệ 2 gồm các chữ số 0 và 1 (các bit) và chữ B đi kèm để phân biệt với các hệ đếm khác khi cùng lúc làm việc với nhiều hệ đếm khác nhau. - Cụm 4 bit tạo thành 1 nipple. 24 - Cụm 8 bit tạo thành 1 byte. - Cụm 16 bit tạo thành 1 từ (word). - Cụm 32 bit tạo thành 1 từ kép (double word). Chữ số đầu tiên bên trái trong dãy các bit của một số nhị phân gọi là bit cĩ trọng số lớn nhất (MSB - Most Significan Bit). Chữ số cuối dùng bên phải trong dãy các bit của một số nhị phân gọi là bit cĩ trọng số bé nhất (LSB - Least Significan Bit). Cách đếm trong hệ nhị phân tương tự như cách đếm trong các hệ thống số khác. Bắt đầu bằng số ở hàng đơn vị với một ký tự, việc đếm số được khai triển dùng các ký tự cho phép để ám chỉ giá trị, theo chiều tăng lên. Hệ thập phân được đếm từ ký tự 0 đến ký tự 9, trong khi hệ nhị phân chỉ được dùng ký tự 0 và 1 mà thơi. Khi những ký tự cho một hàng đã dùng hết (như hàng đơn vị, hàng chục, hàng trăm trong hệ thập phân), thì con số tại hàng tiếp theo (về bên trái) được nâng giá trị lên một vị trí, và con số ở hàng hiện tại được hồn trả lại vị trí đầu tiên dùng ký tự 0. Trong hệ thập phân, chu trình đếm tương tự như sau: 000, 001, 002, ... 007, 008, 009, (số cuối cùng ở bên phải quay trở lại vị trí ban đầu trong khi số tiếp theo ở bên trái được nâng cấp lên một giá trị) 010, 011, 012, ... ... 090, 091, 092, ... 097, 098, 099, (hai số bên phải chuyển về vị trí ban đầu trong khi số tiếp theo ở bên trái được nâng cấp lên một giá trị) 100, 101, 102, ... Sau khi một con số đạt đến ký tự 9, thì con số ấy được hồn trả lại vị trí ban đầu là số 0, đồng thời gây cho con số tiếp theo ở bên trái được nâng cấp lên một vị trí mới. Trong hệ nhị phân, quy luật đếm số tương đồng như trên cũng được áp dụng, chỉ khác một điều là số ký tự được dùng chỉ cĩ 2 mà thơi, tức là ký tự 0 và 1 được dùng mà thơi. Vì vậy, khi một con số đã chuyển lên đến ký tự 1 trong hệ nhị phân, sự nâng cấp của giá trị bắt nĩ hồn trả lại vị trí ban đầu, tức là số 0, và nâng cấp con số tiếp theo về bên trái lên một giá trị: 000, 001, (số cuối bên phải được hồn trả lại vị trí ban đầu, trong khi số ở hàng bên cạnh về phía tay trái được nâng cấp lên một giá trị) 010, 011, (hai số cuối bên phải được hồn trả lại vị trí ban đầu, trong khi số ở hàng bên cạnh về phía tay trái được nâng cấp lên một giá trị) 100, 101, ... 25 3.1.3. Hệ th p lục phân Trong tốn học và trong khoa học điện tốn, hệ thập lục phân (hay hệ đếm cơ số 16, tiếng Anh: hexadecimal), hoặc chỉ đơn thuần gọi là thập lục, là một hệ đếm cĩ 16 ký tự, từ 0 đến 9 và A đến F (chữ hoa và chữ thường như nhau). Hệ thống thập lục phân hiện dùng, được cơng ty IBM giới thiệu với thế giới điện tốn vào năm 1963. Một phiên bản cũ của hệ thống này, dùng các con số từ 0 đến 9, và các con chữ U đến Z, đã được sử dụng trong máy tính Bendix G-15, ra mắt năm 1956. Ví dụ : số thập phân 79, với biểu thị nhị phân là 01001111, cĩ thể được viết thành 4F trong hệ thập lục phân (4 = 0100, F = 1111). 3.1.4. Chuyển đổi giữa các cơ số Chuyển đổi từ cơ số n sang cơ số 10 (với n = {2, 8, 16, ... ) theo cơng thức dạng tổng quát ở các phần trên. Các chuyển đổi sơ A từ cơ số 10 sang cơ số n theo thuật tốn chung là : Bước 1: Nếu A < n thì kết quả = A, trái lại đến bước 2 Bước 2: A = A chia nguyên cho n, Bi=A chia dư cho n (i=1,2,3,...) Nếu A = 0 thì đến bước 3 trái lại làm lại bước 2 với i=i+1 Bước 3: Kết quả = BiBi-1Bi-2...B1 Ví dụ : chuyển sang cơ số (n 2) TT Phép tính Số dƣ TT Phép tính Số dƣ 1 118 ÷ 2 = 59 0 5 7 ÷ 2 = 3 1 2 59 ÷ 2 = 29 1 6 3 ÷ 2 = 1 1 3 29 ÷ 2 = 14 1 7 1 ÷ 2 = 0 1 4 14 ÷ 2 = 7 0 26 Lược trình các con số dư theo thứ tự từ dưới lên trên, cho chúng ta một số nhị phân 11101102.  Chuyển đổi từ cơ số 2 sang cơ số 16 và ngược lại Mỗi một ký tự ở cơ số 16 chuyển đổi tương ứng sang 4 bit với cơ số 2 và ngược lại VD : F là số cơ số chuyển sang cơ số và ngƣ c lại: 3.2. M hố và lƣu trữ trong máy tính Nguyên tắc chung về mã hố dữ liệu là mọi dữ liệu được đưa vào máy tính được mã hố thành số nhị phân.  Các loại dữ liệu: o Dữ liệu nhân tạo: do con người quy ước o Dữ liệu tự nhiên: tồn tại khách quan với con người  Mã hố dữ liệu nhân tạo o Dữ liệu số nguyên: mã hố theo một số chuẩn đã qui ước o Dữ liệu số thực: mã hố bằng số dấu chấm động o Dữ liệu phi số (ký tự): mã hố theo các bộ mã ký tự hiện hành như : ASCII, Unicode,… Hình 20: Cách thức một tín hiệu v t lý qua Máy tính Nguyên tắc lưu trữ dữ liệu trên máy tính 9FA 1001 1111 1010 27 Bộ nhớ chính tổ chức lưu trữ dữ liệu theo đơn vị byte. Độ dài từ dữ liệu cĩ thể chiếm từ 1 đến 4 byte. Vì vậy cần phải biết thứ tự chúng lưu trữ trong bộ nhớ chính đối với các dữ liệu nhiều byte. Cĩ hai cách lưu trữ được đưa ra o Little Endian (đầu nhỏ): Byte cĩ ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở vị trí cĩ địa chỉ nhỏ hơn. o Big Endian (đầu to): Byte cĩ ý nghĩa thấp hơn được lưu trữ trong bộ nhớ ở vị trí cĩ địa chỉ lớn hơn. 3.3. iểu diễn số nguyên Máy tính biểu diễn số nguyên chia thành 2 loại o Biểu diễn số nguyên khơng dấu (unsign integer) o Biểu diễn số nguyên cĩ dấu (sign integer)  Số nguyên khơng dấu: Giả sử dùng n bit để biểu diễn số nguyên khơng dấu thì dải số mà n bit biểu diễn được từ 0 đến 2n-1. Giá trị của số nguyên đĩ được tính: o Dải miền trị của số nguyên khơng dấu được biểu bằng hình trịn, nghĩa là : 28  Max+1=Min  Min -1=Max o Giá trị nhỏ nhất bằng 0 o Giá trị lớn nhất bằng 2n-1  Số nguyên cĩ dấu : Một số nguyên a thì đối của nĩ –a, để mơ tả dược số âm bit cao nhất sẽ được trích ra sử dụng làm dấu, nếu bít đĩ =1 tương ứng với số âm, nếu bằng 0 tương ứng với số dương. Giải thiết với một số nguyên cĩ dấu 8 bit thì sẽ được biểu thị như sau: Như vậy khi sử dụng một bít để biểu thị dấu, với một số nguyên kích thước n bit thì giá trị tối đa mà nĩ biểu diễn chỉ cịn 2(n-1)-1. Ta nhận thấy rằng a + (-a) = 0, giả thiết a = 101 với cách biểu diễn số âm như trên ta cĩ : +a = 0101 -a = 1101 => a + (-a) = 0101 + 1101 = 10010 = -2 (nếu coi bit 1 dâu tiên là dấu) 0. Như vậy với cách biểu thị số âm như trên khơng thỏa mãn đặc tính số đối trong tốn học. Người ta sử dụng một cách biểu diễn khác là số bù 2.  Số bù 2 : Max: 255 Min: 0 VD giải giá trị của số nguyên 8 bit 0 7 6 Bit dấu: = 1: Số âm = 0: Số dương Giá trị thực 29 Bù 2 (tiếng Anh: two's complement) là một số trong hệ nhị phân là bù đúng (true complement) của một số khác. Một số bù 2 cĩ được do đảo tất cả các bit cĩ trong số nhị phân (đổi 1 thành 0 và ngược lại) rồi thêm 1 vào kết quả vừa đạt được. Thực chất, số biểu diễn ở dạng bù 2 là số biểu diễn ở bù 1 rồi sau đĩ cộng thêm 1. Phương pháp bù 2 thường được sử dụng để biểu diễn số âm trong máy tính. Theo phương pháp này, bit cực trái (là bit nằm bên trái cùng của byte) được sử dụng làm bit dấu (sign bit - là bit tượng trưng cho dấu của số) với quy ước: nếu bit dấu là 0 thì số là số dương, cịn nếu nĩ là 1 thì số là số âm. Ngồi bit dấu này ra, các bit cịn lại được dùng để diểu diễn độ lớn của số. Ví dụ: số nguyên −5 ở hệ thập phân được biểu diễn trong máy tính theo phương pháp bù 2 như sau (với mẫu 8 bit): o Bước 1: xác định số nguyên 5 ở hệ thập phân được biểu diễn trong máy tính là: 0000 0101. o Bước 2: đảo tất cả các bit nhận được ở bước 1. Kết quả sau khi đảo là: 1111 1010. o Bước 3: cộng thêm 1 vào kết quả thu được ở bước 2: kết quả sau khi cộng: 1111 1011. o Bước 4: vì là biểu diễn số âm nên bit bên trái cùng luơn giữ là 1. Vậy với phương pháp bù 2, số −5 ở hệ thập phân được biểu diễn trong máy tính như sau: 1111 1011. Ngồi cách làm theo định nghĩa như trên ra, ta cịn cĩ thể áp dụng phương pháp bù 2 theo quy tắc sau: với biểu diễn nhị phân của một số dương cho trước, để biểu diễn số âm tương ứng, ta bắt đầu tìm từ phải sang trái cho đến khi gặp bit đầu tiên cĩ giá trị 1. Khi gặp được bit này, ta đảo tất cả các bit từ ngay kề trước nĩ (tức trước bit cĩ giá trị 1 vừa nĩi tới) cho đến bit cực trái, và luơn nhớ: bit cực trái là 1. Ví dụ: ta cũng biểu diễn lại số nguyên −5 ở hệ thập phân sang hệ nhị phân theo quy tắc mới này (giả sử với mẫu 8 bit): o Bước 1: xác định số nguyên 5 ở hệ thập phân được biểu diễn trong máy tính là: 0000 0101. o Bước 2: bắt đầu tìm (từ phải qua trái) bit đầu tiên cĩ giá trị 1, ta thấy, đĩ là bit thứ nhất (tính từ phải qua). o Bước 3: đảo tất cả các bit nằm trước bit thu được ở bước 2. Kết quả nhận được: 1111 1011 o Bước 4: vì là biểu diễn số âm nên bit bên trái cùng luơn giữ là 1. 30 Vậy số −5 ở hệ thập phân được biểu diễn trong máy tính theo phương pháp bù 2 là: 1111 1011 (hồn tồn giống như kết quả trong ví dụ trên). 3.4. Số h c nhị phân Phần này chúng ta quan tâm đến các phép tính số học trên số nhị phân, vơ cơ bản các phép tính +,-,*,/ tương tự với cơ số 10 thơng thường  Phép cộng nhị phân: Cộng nhị phân được thực hiện theo quy tắc ở Bảng 1 Bảng 1: Quy tắc Cộng Nhị phân. SỐ HẠNG SỐ HẠNG TỔNG SỐ NHỚ K ẾT QUẢ 0 0 0 0 0 0 1 1 0 1 1 0 1 0 1 1 1 0 1 10 Chú ý: Khi cộng, thực hiện từ bit cĩ trọng số thấp đến bit cĩ trọng số cao. Ví dụ: Thực hiện các phép Cộng Nhị phân: 1011 + 1100 = 10111  Phép trừ nhị phân: Phép trừ nhị phân được thực hiện theo quy tắc trình bày ở Bảng 3 Bảng 3: quy tắc Trừ Nhị phân : SỐ TR SỐ TR HIỆU MƢỢN 0 0 0 0 0 1 1 1 1 0 1 0 1 1 0 0 Chú ý: Phép tính được thực hiện từ Bit trọng số thấp đến Bit cĩ trọng số thấp đến Bit cĩ trọng số cao. Số vay sẽ được trừ vào Bit cĩ trọng số cao hơn ở liền kề. Ví dụ: Thực hiện các tính Trừ Nhị phân sau: 31 1011 – 0110 = 0101 Để thực hiện phép trừ được thuận lợi hơn, người ta chuyển đổi phép trừ thành phép cộng với số Bù 2 của nĩ.  Phép nhân nhị phân: Phép nhân nhị phân được thực hiện như nhân thập phân. Ví dụ: Cĩ phép tính: Phép chia nhị phân: Phép chia nhị phân được thực hiện như chia thập phân. 3.5. iểu diễn số dấu chấm động 3.5.1. Số th c dấu ph y t nh Quy tắc: ta chuyển đổi từng phần nguyên và lẻ theo quy tắc sau: o Phần nguyên: Chia liên tiếp phần nguyên cho 2 giữ lại các số dư, Số nhị phân chuyển đổi sẽ là dãy số dư liên tiếp tính từ lần chia cuối về lần chia đầu tiên. o Phần lẻ: Nhân liên tiếp phần lẻ cho 2, giữ lại các phần nguyên tạo thành. Phần lẻ của số Nhị phân sẽ là dãy liên tiếp phần nguyên sinh ra sau mỗi phép nhân tính từ lần nhân đầu đến lần nhân cuối. Ví dụ: Chuyển sang hệ Nhị phân số: 13,625 Thực hiện: Phần nguyên: 32 13:2 = 6 dư 1 6:2 = 3 dư 0 3:2 = 1 dư 1 1:2 = 0 dư 1 => Phần nguyên của số Nhị phân là 1101 Phần lẻ: 0,625 x 2 = 1,250 Phần nguyên là 1 0,250 x 2 = 0,500 Phần nguyên là 0 0,500 x 2 = 1,000 Phần nguyên là 1 (dừng ở đây vì phân nguyên cịn lại =0) => Phần lẻ của số Nhị phân là: 0,101 => Ta viết kết quả là: (13,625)10 = (1101,101)2 Chú ý: việc chuyển đổi từ hệ thập phân sang hệ Nhị phân khơng phải luơn được gọn gàng chính xác, trong trường hợp phép tính chuyển đổi kéo dài, thì tùy theo yêu cầu về độ chính xác mà ta cĩ thể dùng phép tính ở mức độ cần thiết thích hợp.  Nhận xét : Các số dấu phẩy tĩnh chỉ dùng trong các bài tốn yêu cầu độ chính xác khơng cao và luơn cố định, ví dụ điểm mơn học trong trường ĐH CN tính chính xác đến 1 số sau dấu phẩy (VD : 4,5). Như vậy các điểm sẽ luơn cĩ độ chính xác trong khoảng đĩ. Trong thực tế cĩ các bài tốn yêu cầu độ chính xác gần như tuyệt đối như các bài tốn trong ngân hàng, trong điều khiển máy bay, vệ tinh, ... Các bài tốn này khơng thể quy định trước một độ chính xác, người ta phải sử dụng số dấu chấm động, khi đĩ số các số sau dấu phẩy là khơng hạn chế về mặt biểu diễn. VD : 12e-101=12*10 -101 Vấn đề là biểu diễn các số dấu chấm đơ ng như trên máy tính vơ i cơ 3.5.2. Số dấu chấm động Nguyên tắc chung Một số thực x bất kỳ được biểu diễn dưới dạng sau: x = M*RE Trong đĩ : M - Phần định trị. R - Cơ số. E - Phần mũ. 33 Với một hệ thống nào đĩ thì R là cố định. Trong máy tính ngày nay thơng thường R=2. Để biểu diễn được với cơ số 2 ta chuyển về dạng tương đương như sau: X=(-1) s *1.M*2 E-B Trong đĩ: s: là bit dấu (s=0 phần định trị là dương; s=1 phần định trị là âm) M : là phần định trị. E: là số mũ được dịch chuyển đi B đơn vị. R đã được biết (R=2) máy tính lưu số dấu chấm động bao gồm hai thành phần chính Chuẩn IEEE 754-1985 phân định 3 dạng số dấu chấm động cơ bản (IEEE: Institute of Electrical and Electronics Engineers ) o Số cĩ độ chính xác đơn dài 32 bit (single) o Số cĩ độ chính xác kép dài 64 bit (double) o Số cĩ độ chính xác mở rộng dài 128bit (quadruple)  Chu n bit: Xét trường hợp sử dụng 32 bit 8 bit mũ E’ 23 bit định trị - Phần định trị (M) chiếm 23 bit (cho phần sau dấu phẩy nhị phân). - Phần mũ E’ chiếm 8 bit. X= (-1) s 1.M2E’-127 (127 = 7F) S E’ M 34 Ví dụ : Giả sử cĩ một dãy 32 bit như sau: 1 0111 1111 100 0000 0000 0000 0000 0000 - bit dấu S = 1 ( số âm ) - E’ = 0111 1111 = 127 Vậy X = (-1)1  1.1  2127-127 = (-1,1) Ví dụ : Chuyển một số thực hệ 10 sang hệ 2 biểu diễn bằng số thực dấu phẩy động: Cho số 13.2 chuyển sang cơ số 2 là (1101.0011 0011 ........)2 - Di chuyển dấu phẩy về sau số 1 đầu tiên được : ((1,101 0011 0011 ...)23) = (+1,101 0011 0011 ...)23 Phần mũ E = E’ - 127 = 3  E’ = E + 127 = 3 + 127 = (130)10 = (1000 0010)2 S E’ M 0 1000 0010 101 0011 0011 ..... Các qui ước: - Nếu E’ = 255 và M 0 thì x khơng phải là số hợp lệ - Nếu E’ = 255 và M = 0 thì x = -∞/+∞ - Nếu E’ = 0 và M = 0 thì x = 0  Chu n 64 bit: Cũng tương tự như chuẩn 32 bit định dạng chuẩn 64 bit như sau Dấu Phần mũ Phần định trị 1bit 11 bit 52 bit S E = E’ - 1023 M  Chu n bit: Dấu Phần mũ Phần định trị 1bit 15 bit 111 bit S E = E’ - 16383 M 35 3.6. Biểu diễn k t Ký tự thường được sử dụng trong các cơng việc hàng ngày trên máy tính, trong thực tế chúng ta thấy hầu hết các bàn phím của các máy tính đều là các ký tự la tinh, những tại sao lại cĩ thể soạn được các ngơn ngữ khác nhau trên thế giới. Cụ thể đối với Việt Nam cĩ các ký tự đặc biệt như â , ậ , … Tại sao máy tính lạ cĩ thể hiểu và vẫn thể hiện được. Sự thực là máy tính sử dụng một loại bảng mã gọi là bộ Font, cĩ thể xem bảng Font là một bảng gồm hai cột như sau: Mã Ký tự 0 A 1 B 2 C … … 66 Â 67 … … Bằng cách này thì thực ra máy tính khơng hề hiểu các ký tự A, , , … khi ta gõ vào một phím trên bàn phím thì mã số của phím đĩ sẽ được gửi vào máy tính, sau đĩ tùy thuộc mơi trường ta đang sử dụng bộ Font nào thì ký tự tương ứng sẽ được vẽ ra. Mã của phím được bấm là XX Mã Ký tự … … XX ﻛ … … Bảng Font đang dùng Ký tự thể hiện ﻛ Hình 21: Cách thức một ký t bất kỳ đƣ c nh p vào từ bàn phím 36  Bảng mã ASCII: Đây là loại bảng mã 8 bit (Hình 23), số ký tự biểu là 256 ký tự, ngày nay loại bảng mã này ít được sử dụng vì số ký tự biểu diễn được ít, chỉ đủ dùng cho một quốc gia, gây bất tiện khi chuyển văn bản từ máy này sang máy khác nếu khác Font.  Bảng mã Unicode Do các hãng máy tính hàng đầu thế giới kết hợp thiết kế. Kích thước bộ mã này là 16 bit cĩ thể xây dựng bộ mã tồn cầu với số ký tự cĩ thể mã là 216 ký tự với 128 ký tự đầu cĩ mã trùng mã trong bảng mã ASCII. Ví dụ một đoạn trên bẳng mã Unicode Hình 22 Hình 22: Ví dụng một đoạn trong bảng mã Unicode 37 Hình 23: Bảng mã ASCII 38 CHƢƠNG IV: Ợ XỬ LÝ TRUNG TÂM CPU Mục tiêu của chƣơng Giúp sinh viên hiểu cấu trúc chi tiết và nguyên tắc làm việc của CPU. Hiểu được cấu trúc của một số dịng CPU tiên tiến ngày nay Tĩm tắt Trình bày chi tiết cấu trúc của CPU, các cơ chế định địa chỉ, các tập lệnh căn bản, nguyên lý thực hiện chương trình. Trình bày cấu trúc một số CPU tiên tiến. 4. Cấu trúc của CPU 4. . . Cấu trúc cơ bản của một CPU  Khối điều khiển CU – Control Unit Chức năng:  Nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh IP.  Tăng nội dung thanh ghi PC mỗi khi nhận lệnh song  Giải mã lệnh và xác định thao tác mà lệnh yêu cầu  Phát ra tín hiệu điều khiển thực thi lệnh. 39  Nhận các tín hiệu yêu cầu từ BUS hệ thống và giải quyết đáp ứng yêu cầu đĩ. Các thơng tin kết nối đến CU  Clock: tín hiệu xung nhịp từ mạch tạo dao động.  Mã lệnh từ thanh ghi lệnh đưa đến CU giải mã  Các trạng thái cờ đưa đến cho biết trạng thái của CPU cũng như trạng thái thực hiện các phép tốn trong ALU.  Các tín hiệu điều khiển từ BUS điều khiển.  Các tín hiệu điều khiển bên trong CPU: điều khiển thanh ghi, ALU.  Các tín hiệu điều khiển bên ngồi CPU đĩ là Bộ nhớ hay cổng vào ra  Khối Logic tốn học ALU Chức năng: thực các phép tốn số học và logic  Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo,..  Logic: AND, OR,XOR, NOT, dịch bit,…  Mơ hình kết nối của ALU 40  Tập các thanh ghi Chức năng  Thực chất là vùng nhớ được CPU nhận biết qua tên thanh ghi và cĩ tốc độ truy xuất cực nhanh.  Chứa 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  Số lượng thanh ghi tuỳ thuộc vào bộ vi xử lý cụ thể -> tăng hiệu năng CPU  Thanh ghi chia 2 loại: Loại lập trình được và loại khơng lập trình được Dưới đây là tập các thanh ghi đa năng ở các thế hệ vi xử lý từ 8bit – 64bit:  Phân loại thanh ghi theo chức năng  Thanh ghi địa chỉ: Thanh ghi được sử dụng để quản lý địa chỉ của ngăn nhớ hay cổng vào ra.  Thanh ghi dữ liệu: Thanh ghi dùng để lưu trữ dữ liệu tạm thời  Thanh ghi đa năng: Thanh ghi cĩ thể chứa dữ liệu hoặc địa chỉ đều được. 41  Thanh ghi điều khiển/trạng thái: Thanh ghi chứa thơng tin về trạng thái CPU.  Thanh ghi lệnh: thanh ghi chứa lệnh đang được thực hiện 4.1.2. CPU Dual Core Cấu trúc chu của một CPU dual core của AMD: Hình 24: Dual Core của MD Ta nhận thấy rằng ở thế hệ này 2 nhân CPU được tích hợp trên một chip duy nhất với cùng kích thước và số chân nhưng tốc độ thực thi tăng gần như gấp đơi. Tuy nhiến với kiến trúc này vẫn cĩ một nhược điểm đĩ là mỗi Core cĩ một cache riêng, điều này làm cho hiệu xuất sử dụng cache sẽ khơng cao, vì cĩ khi một core thiếu cache trong khi core kia khơng sử dụng đến cache của mình.  Cấu trúc CPU dual core của Intell Hình 25: Smart Cache trong Chip Dual core của Intel 42 Kiến trúc này sử dụng cơng nghệ chia sẻ thơng minh cache L2, nghĩa là 2 core sử dụng chung cache L2 với tổng dung lượng 4MB. Cịn ở thế hệ Dual Core trước đây, mỗi nhân cĩ cache L2 riêng với dung lượng mỗi cache là 2MB và cĩ nhược điểm là cache L2 của nhân nào thì nhân đĩ dùng, nếu thừa thì để đĩ và thiếu thì phải đợi. Việc chia sẻ cache L2 cũng làm tăng băng thơng của từng nhân. Cache L2 dùng chung được cấp một cách năng động cho từng nhân của CPU dựa vào khối lượng cơng việc. Việc thực thi tối ưu 2 nhân cĩ hiệu quả này làm tăng khả năng truy cập dữ liệu của mỗi nhân từ cache L2, giảm thời gian trễ một cách đáng kể cho những dữ liệu được thường xuyên sử dụng và nâng cao hiệu quả tính tốn.  Một số ƣu điểm vƣ t trội của cơng nghệ dual core: 1) Tăng tốc độ tính tốn song song bằng kỹ thuật siêu phân luồng(Hình 26) 2) Tăng tốc độ thực thi chương trình bằng bằng cơng nghệ chia sẻ với Cache lớn hơn (Hình 27) 3) Tăng tốc độ xử lý các gĩi Media (Video, ảnh, …) 128bit/lần (Hình 28) 4) Tiết kiệm năng lượng tối đa: Chỉ cấp nguồn cho core nào đang hoặt động. Hình 26: Siêu phân luồng với đa nhân 43 Hình 27: Chia sẻ Cache thơng minh Hình 28: Tăng tốc độ xử l Media 44 4. . T p lệnh Tập lệnh là thứ ngơn ngữ duy nhất mà một CPU cĩ thể hiểu và làm theo. Về mặt bản chất cĩ thể hiểu rằng mọi chương trình chạy trên máy tính là sự kết hợp các lệnh và chỉ với những lệnh này theo một cách thức nào đấy nhằm làm một việc cụ thể. Cũng như ta cĩ Búa, Cưa, Gỗ, Đinh,… Những bằng các cách và quynh trình khác nhau ta cĩ thể tạo ra Bàn, Ghế, Tủ,… Một lệnh máy thường cĩ 2 phần: o Mã thao tác (Operation Code: Opcode): Mã chỉ ra thao tác mà bộ vi xử lý cần phải thực hiện. o Địa chỉ tốn hạng (Operand Address): Chỉ ra nơi chứa các tốn hạng mà mã thao tác sẽ tác động.  Tốn hạng nguồn: dữ liệu vào của thao tác  Tốn hạng đích: dữ liệu ra của thao tác Một số nhĩm lệnh cơ bản: o Thao tác chuyển dữ liệu o Thao tác xử lý số học và logic o Thao tác vào ra dữ liệu qua cổng o Thao tác điều khiển rẽ nhánh o Thao tác điều khiển hệ thống o Thao tác xử lý số dấu chấm động o Thao tác chuyên dụng khác: xử lý ảnh, âm thanh, tiếng nĩi,… a) Các lệnh chuyển dữ liệu o Lệnh Mov: Sao chép dữ liệu từ tốn hạng nguồn -> đích  Cú pháp: Mov đích, nguồn o Lệnh Load: Nạp dữ liệu từ bộ nhớ -> bộ xử lý  Cú pháp: Load nguồn o Lệnh XCHG: Trao đổi nội dung của hai tốn hạng cho nhau  Cú pháp: XCHG tốn_hạng , tốn_hạng o Lệnh PUSP: Cất nội dung của một tốn hạng nguồn vào stack 45  Cú pháp: PUSH nguồn o Lệnh POP: Lấy nội dung ở đỉnh Stack ra tốn hạng đích  Cú pháp: POP đích Ví dụ : MOV AX , Var 1 MOV Var 2 , AX b) Các lệnh vào ra o Lệnh Input:  Cú pháp: Input đích, địa_chỉ_cổng_nguồn o Lệnh Output  Cú pháp: Out địa_chỉ_cổng_đích, nguồn Ví dụ : MOV DX, 278 h IN AL,DX c) Các lệnh chuyển điều khiển o Lệnh Jump: Nhẩy đến vị trí bất kỳ trong chương trình  Cú pháp: Jump Nhãn o Lệnh Call: Gọi chương trình con  Cú pháp: Call Tên_chƣơng_trình_con o Lệnh Return : trở về từ chương trình con Ví dụ: d) Các lệnh điều khiển hệ thống o Lệnh Halt : dừng thực hiện chương trình 46 o Lệnh Wait : tạm dừng thực hiện chương trình, lặp kiểm tra cho đến khi thoả mãn thì tiếp tục thực hiện o No Operation: khơng thực hiện gì cả o Lệnh Lock : Cấm khơng cho chuyển nhượng BUS o Lệnh Unlock: cho phép chuyển nhượng BUS  Các phƣơng pháp xác định địa chỉ tốn hạng Mỗi một lệnh đều cĩ trường tốn hạng, trong thực tế khi ta lập trình với các ngơn ngữ bậc cao, cĩ nhiều cách để gán một giái trị cho một biến: X = 15 // gán tức thì gia trị 15 cho X X = y // Gán giá trị cho X thơng qua y X = mang[i // gán giá trị cho X bằng địa chỉ tương đối quan biến Cách thức để tìm được giá trị và truyền cho X gọi là các cách xác định địa chỉ, cĩ 7 cách xác định chỉ chính như sau: a) Chế độ địa chỉ thanh ghi Dùng thanh ghi như là các tốn hạng chứa dữ liệu cần thao tác, tốc độ thực hiện lệnh rất nhanh vì CPU khơng mất thời gian tìm kiếm dữ liệu. Ví dụ: MOV AL, BL ; AL:= BL MOV DS, BX ; DS:= BX ADD AL, DL ; AL:= AL + DL b) Chế độ địa chỉ tức thì Tốn hạng đích là thanh ghi, hoặc ơ nhớ. Tốn hạng nguồn là 1 giá trị cụ thể (hằng số). Ví dụ: MOV AL, 0Dh ; AL:=0Dh 47 Lệnh này thường được dùng để nạp dữ liệu cần thao tác vào thanh ghi nào đĩ. c) Chế độ địa chỉ tr c tiếp Một tốn hạng là địa chỉ offset của ơ nhớ chứa giá trị cần thao tác. Tốn hạng kia là thanh ghi (khơng được là ơ nhớ). Ví dụ: MOV AL, [04FCh] ; đưa vào thanh ghi AL nội dung ơ nhớ cĩ địa chỉ logic ; DS:04FCh. d) Chế độ địa chỉ gián tiếp qua thanh ghi Một tốn hạng là thanh ghi chứa địa chỉ offset của ngăn nhớ chứa giá trị cần thao tác. Tốn hạng kia là thanh ghi (khơng được là ngăn nhớ). MOV [BX], AL ; Đưa nội dung thanh ghi AL vào ngăn nhớ cĩ địa chỉ ; offset nằm trong thanh ghi BX. e) Chế độ địa chỉ tƣơng đối cơ sở 48 Thanh ghi BX, BP và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ trong DS, SS chứa giá trị cần thao tác. Ví dụ: MOV [BX + N], CL; Đưa nội dung thanh ghi CL vào ngăn nhớ cĩ địa chỉ ; offset BX + N (DS:BX + N) MOV AL, [BP + N] ; Đưa nội ngăn nhớ cĩ địa chỉ offset BP + N vào thanh ; ghi AL (SS:BP + N) f) Chế độ địa chỉ tƣơng đối chỉ số Thanh ghi DI, SI và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ chứa giá trị trong DS cần thao tác. Ví dụ: MOV [SI + N], AH ; Đưa nội dung thanh ghi AH vào ngăn nhớ cĩ địa chỉ ; offset tại SI + N (DS:SI + N). MOV CL, [DI + N] ; Đưa nội dung ngăn nhớ cĩ địa chỉ offset tại DI + N ; (DS:DI + N) vào thanh ghi CL. g) Chế độ địa chỉ tƣơng đối chỉ số cơ sở Chế độ địa chỉ này là sự kết hợp cả 2 chế độ địa chỉ trên. Dùng cả thanh ghi cơ sở và thanh ghi chỉ số để tính địa chỉ tốn hạng. Ví dụ: MOV [BX + SI + N], AX ; Đưa nội dung thanh ghi AX vào ngăn nhớ cĩ địa ; chỉ offset tại BX + SI + N (DS:BX + SI + N). MOV CL, [BP + DI + N] ; Đưa nội dung ngăn nhớ cĩ địa chỉ offset tại ; BP + DI + N (DS:BP + DI + N) vào th.ghi CL. 4.3. Hoạt động của CPU a. Nguyên tắc chung 49 Khi bạn kích đúp vào một biểu tượng nào đĩ để chạy chương trình thì những gì sẽ xảy ra là: 1. Chương trình đã lưu bên trong ổ đĩa cứng(hoặc USB/CDROM) sẽ được đưa vào bộ nhớ RAM. Ở đây chương trình chính là một loạt các chỉ lệnh đối với CPU. 2. CPU sử dụng mạch phần cứng được gọi là memory controller để tải dữ liệu chương trình từ bộ nhớ RAM vào CPU. 3. Lúc đĩ dữ liệu bên trong CPU sẽ được xử lý. 4. Những gì diễn ra tiếp theo sẽ phụ thuộc vào chương trình vừa được nạp. CPU cĩ thể tiếp tục tải và thực thi chương trình hoặc cĩ thể thực hiện một cơng việc nào đĩ với dữ liệu đã được xử lý, như việc hiển thị kết quả thực hiện nào đĩ lên màn hình. Hình 29: Quy trình chƣơng trình đƣ c lƣu đƣa vào CPU b. Tải dữ liệu giữa bộ nhớ ngồi và R M Trước đây, CPU trực tiếp điều khiển việc vận chuyển dữ liệu giữa bộ nhớ ngồi và RAM. Vì bộ nhớ ngồi thường cĩ tốc độ truy cập thấp hơn so với bộ nhớ RAM nên nĩ làm chậm quá trình thực thi chương trình cho cả hệ thống, chính vì vậy CPU sẽ rất bận một cách vơ ích trong việc tải dữ liệu giữa bộ nhớ ngồi và RAM. Phương pháp này được gọi là PIO, Processor I/O (hay Programmed I/O). Ngày nay, việc vận chuyển dữ liệu giữa bộ nhớ ngồi và RAM được thực hiện mà khơng sử dụng trực tiếp đến CPU, điều này làm cho hệ thống hoạt động nhanh hơn và CPU dành thời gian thay vì phải chuyển dữ liệu sang làm việc khác. Phương pháp này được gọi là bus mastering hay DMA (Direct Memory Access). Đây là giải pháp chuyên biệt cho việc vận chuyển dữ liệu. Các bộ vi xử lý của AMD dựa trên sockets 754, 939 và 940 (Athlon 64, Athlon 64 X2, Athlon 64 FX, Opteron và một số mơ hình Sempron) cĩ một memory controller được nhúng bên trong. Điều đĩ cĩ nghĩa rằng với các bộ vi xử lý này, CPU truy cập bộ nhớ RAM một cách trực tiếp mà khơng sử dụng north bridge chip. 50 c. Giải m và th c thi lệnh Khối tìm nạp (CU) chịu hồn tồn trách nhiệm về việc nạp các lệnh từ bộ nhớ. Đầu tiên, nĩ xem lệnh được yêu cầu bởi CPU cĩ trong L1 instruction cache hay khơng. Nếu khơng cĩ ở đây, nĩ sẽ vào L2 memory cache. Nếu lệnh cũng khơng cĩ trong L2 memory cache thì nĩ sẽ phải nạp trực tiếp từ bộ nhớ RAM. Khi bạn bật máy tính, tất cả các cache đều trống rỗng, tuy nhiên khi hệ thống bắt đầu nạp hệ điều hành, CPU bắt đầu xử lý các lệnh đầu tiên từ ổ cứng và cache controller bắt đầu nạp lệnh vào cache. Sau khi khối tìm nạp đã cĩ được lệnh cần thiết cho CPU để được xử lý, nĩ gửi lệnh này đến khối giải mã. Khối giải mã sẽ phân tích và chỉ ra lệnh này thực hiện những nhiệm vụ gì. Sau khi khối giải mã dịch xong lệnh và lấy được tất cả dữ liệu cần thiết để thực thi lệnh này, nĩ sẽ gửi tất cả cùng với MicroCode của lệnh đĩ đến khối thực thi. Khối thực thi sẽ thực hiện lệnh này. Trên các CPU hiện đại, bạn sẽ thấy cĩ nhiều khối thực thi làm việc song song. Điều này nhằm tăng hiệu suất của CPU. Ví dụ, một CPU cĩ 6 khối thực thi sẽ cĩ thể thực thi đến 6 lệnh song song đồng thời, chính vì vậy theo lý thuyết nĩ hồn tồn cĩ thể thực hiện được một hiệu suất bằng với 6 bộ vi xử lý mà chỉ cĩ một khối thực thi. 4.4 Kiến trúc Intel 4.4. . Kiến trúc Intel Bộ vi xử lý 8088/8086 thực thi chương một chương trình bằng cách lặp đi lặp lại 3 thao tác chính là lấy lệnh (fetch), giải mã lệnh (decode) và thực hiện (execute). Sơ đồ khối của bộ vi xử lý 8088/8086 gồm 2 đơn vị chính(Hình 30): - EU (Execution Unit): Đơn vị (khối) thực hiện lệnh. - BIU (Bus Interface Unit): Đơn vị giao tiếp bus (khối tương thích bus) để điều khiển bus hiệu quả hơn.  EU Đơn vị EU của 8088 và 8086 giống nhau, bao gồm ALU, thanh ghi cờ, các thanh ghi đệm và các thanh ghi đa năng. Các bus dữ liệu bên trong của EU đều là 16 bit. EU khơng kết nối trực tiếp với bên ngồi, nĩ nhận lệnh từ hàng đợi lệnh bên trong BUI. Nếu là lệnh cần truy nhập bộ nhớ hoặc cổng vào/ra (I/O port - thiết bị ngoại vi) thì EU yêu cầu BIU lấy hoặc gửi dữ liệu. Tất cả các địa chỉ mà EU thao tác đều là 16 bit, khi gửi sang BIU thì BIU sẽ thực hiện tính tốn để tạo địa chỉ vật lý 20 bit và phát ra các chân địa chỉ của chip. 51  Các thanh ghi của EU Cĩ 8 thanh ghi, là thành phần nhớ cĩ tốc độ truy nhập rất cao. Bao gồm các thanh ghi đa năng Ax, Bx, Cx, Dx. Mỗi thanh ghi 16 bit cĩ thể được phân chia thành 2 thanh ghi 8 bit làm việc độc lập nhau.  AX (Accumulator, Acc): Thanh chứa, chứa tạm thời dữ liệu (tốn hạng, kết quả phép tốn như nhân, chia và được coi là Acc). AX cĩ thể được phân chia thành AH (Phần cao) và AL (Phần thấp).  BX (Base): Thanh ghi cơ sở, thường được dùng để chứa địa chỉ cơ sở cần truy nhập trong lệnh XLAT. BX cĩ thể được phân chia thành BH (Phần cao) và BL (Phần thấp).  CX (Count): Bộ đếm, thường được dùng để đếm số lần lặp của cơng việc (số lần lặp trong các vịng lặp). CX cĩ thể được phân chia thành CH (Phần các thanh ghi tạm thanh ghi cờ Logic điều khiển BUS AX BX CX DX SP BP SI DI Khối điều khiển của EU Đệm lệnh (hàng đợi lệnh) (6 byte cho 8086) BUS ngồi Bus địa chỉ (20 bit) các thanh ghi đa năng các thanh ghi đoạn và con trỏ lệnh các thanh ghi con trỏ và chỉ số Bus dữ liệu ALU(16bit) Bus dữ liệu (8 bit) Bus trong 8 bit dữ liệu 20 bit địa chỉ EU BIU CS DS SS ES IP Hình 30: Sơ đồ khối 8086/8088 52 cao) và CL (Phần thấp). CX thường được dùng để chứa số lần lặp trong các lệnh LOOP, cịn CL thường chứa số lần dịch hoặc quay trong các lệnh dịch quay thanh ghi.  DX (Data): Thanh ghi đữ liệu, sử dụng để chứa tốn hạng, kết quả. DX cùng AX dùng để chứa tốn hạng hoặc kết quả của các phép nhân, chia số 16 bit. DX cịn chứa địa chỉ cổng trong các lệnh vào ra trực tiếp (IN, OUT). DX cĩ thể được phân chia thành DH (Phần cao) và DL (Phần thấp).  Các thanh con trỏ Các thanh ghi SP, BP là các thanh ghi con trỏ khơng tách rời.  SP (Stack Pointer): Thanh ghi con trỏ ngăn xếp, trỏ vào đỉnh hiện thời của ngăn xếp nằm trong đoạn ngăn xếp SS (Nĩ luơn kết hợp với thanh ghi SS). Ta cĩ địa chỉ logic SS: SP. Sau mỗi thao tác cất một word vào stack (thao tác Push) thì SP tự động giảm 2 đơn vị, cịn sau thao tác lấy một word ra khỏi stack (thao tác Pop), SP được tự động tăng 2 đơn vị.  BP (Base stack Pointer): Con trỏ cơ sở, luơn trỏ vào một dữ liệu cụ thể nằm trong đoạn ngăn xếp SS. Ta cĩ địa chỉ logic SS: BP.  SI (Source Index): Thanh ghi chỉ số nguồn (hay nguồn), chỉ vào dữ liệu nằm trong đoạn DS. Ta cĩ địa chỉ logic DS: SI.  DI (Destination Index): Thanh ghi chỉ số đích, chỉ dữ liệu trong đoạn DS. Ta cĩ địa chỉ logic DS: DI.  Khối LU Làm nhiệm vụ thực hiện các lệnh số học và logic.  Số học: +, -, *, /, so sánh, đảo dấu.  Logic: NOT, AND, OR, XOR.  Thanh ghi cờ: Đây là thanh ghi 16 bit, mỗi bit được sử dụng để thể hiện một trạng thái của bộ vi xử lý tại một thời điểm nhất định trong quá trình thực hiện chương trình (dãy các câu lệnh), nhưng chỉ dùng 9 bit đối với bộ vi xử lý 8088/8086. Mỗi bit đĩ được gọi là một cờ (flag). Giá trị của mỗi cờ được biểu diễn bằng các ký hiệu gợi nhớ như cách biểu diễn của chương trình Debug của DOS. OF DF IF TF SF ZF AF PF CF 53  CF (Carry Flag): Cờ nhớ (cờ tràn). CF = 1 (CY - CarrY) khi kết quả phép tốn vượt (tràn) khuơn khổ biểu diễn (cĩ nhớ (mượn) lên trên (từ) MSB), CF = 0 (NC - No Carry) trong trường hợp ngược lại. Cờ này thường được sử dụng khi thực hiện các phép cộng, trừ các số nhiều byte. Ví dụ: 1011 0001 + 0110 1001 10001 1010  PF (Parity Flag): Cờ chẵn lẻ. PF = 1 (PE - Parity Even) khi số bit 1 trong kết quả phép tốn (hay các phép vận chuyển dữ liệu) là chẵn, PF = 0 (PO - Parity Old) trong trường hợp ngược lại.  AF (Carry Flag): Cờ nhớ phụ (tràn phụ - cờ bổ trợ). Cờ này cĩ ý nghĩa khi ta làm việc với số BCD. AF = 1 (AC - Auxiliary Carry) khi cĩ nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số BCD cao (4 bit cao) và AF = 0 (NA - No Auxiliary carry) trong trường hợp ngược lại.  SF (Sign Flag): Cờ dấu. Trong bộ vi xử lý 8088/8086 các số âm được biểu diễn dưới dạng số bù 2, nên phải dùng cờ SF để chỉ thị dấu của kết quả. SF = 1 (NG - NeGative), khi kết quả phép tốn là một số âm, SF = 0 (PL- PLus) trong trường hợp ngược lại.  ZF (Zero Flag): Cờ rỗng. ZF = 1 (ZR - ZeRo) khi kết quả phép tốn = 0, ZF = 0 (NZ-Non Zero) trong trường hợp ngược lại.  OF (Overflow Flag): Cờ tràn. OF = 1 (OV-OVerflow) khi kết quả là số bù 2 vượt khuơn khổ biểu diễn (tràn số học, hay nĩi cách khác: khi cộng hai số cùng dấu mà kết quả là một số trái dấu thì OF = 1), OF = 0 (NV-Non oVerflow) trong trường hợp ngược lại (cờ này làm việc với số cĩ dấu).  Cờ điều khiển Cờ trạng thái phụ thuộc kết quả phép tốn, cịn với cờ điều khiển ta cĩ thể thiết lập nhờ lệnh. 54  IF (Interrupt Flag): Cờ ngắt. IF = 1 (EI-Enable Interrup), CPU cho phép ngắt, IF = 0 (DI-Disable Interrup) CPU khơng cho phép ngắt (cấm) các loại ngắt che được (Maskable)..  TF (Trap Flag): Cờ bẫy. TF = 1 CPU làm việc trong chế độ chạy từng lệnh, thường dùng để gỡ rối chương trình (debug). Sau khi thực hiện xong mỗi lệnh, bộ vi xử lý sẽ phát ra một lệnh ngắt (INT) để cĩ kiểm tra chương trình.  DF (Direction Flag): Cờ hướng. Điều khiển hướng xử lý đối với thao tác chuỗi. DF = 1 (DN-DowN) thì các lệnh vận chuyển dữ liệu hay xử lý chuỗi sẽ thao tác lùi từ phải đến trái (địa chỉ cao đến địa chỉ thấp). DF=0 (UP) trong trường hợp ngược lại (thao tác các phần tử từ địa chỉ thấp đến địa chỉ cao).  BIU  Hàng đợi: Là tập thanh ghi Với 8086 hàng đợi lệnh là 6 byte, 8088 hàng đợi lệnh là 4 byte nên chứa được tối đa là 4 lệnh. CPU chứa tập thanh ghi theo kiểu LIFO. Cơ chế:  Đọc lệnh (lấy lệnh)  Giải mã lệnh  Thực hiện  Thanh ghi IP: Thanh ghi con trỏ lệnh, trỏ vào lệnh tiếp theo chuẩn bị được thực hiện nằm trong đoạn CS (CS: IP). Sau khi đọc 1 byte, IP tự động tăng thêm 1. Như vậy thực tế thì cặp CS:IP mới là con trỏ lệnh vì nĩ chứa địa chỉ đầy đủ của một lệnh trong bộ nhớ.  Thanh ghi đoạn:  CS (Code Segment): Thanh ghi đoạn mã, là thanh ghi địa chỉ đoạn mã lệnh, chứa địa chỉ cơ sở (địa chỉ đoạn) của chương trình đang thực hiện.  DS (Data Segment): Thanh ghi đoạn dữ liệu, là thanh ghi địa chỉ đoạn dữ liệu, chứa địa chỉ đoạn của vùng dữ liệu mà chương trình đang thực hiện sử dụng. Vùng này thường chứa các biến của chương trình. 55  SS (Stack Segment): Thanh ghi đoạn ngăn xếp, là thanh ghi địa chỉ đoạn bộ nhớ ngăn xếp (stack) của chương trình đang chạy.  ES (Extra Segment): Thanh ghi đoạn dữ liệu phụ, là thanh ghi địa chỉ đoạn dữ liệu bổ sung mà chương trình đang thực hiện sử dụng. Vùng này cũng thường chứa các biến của chương trình.  Khơng gian địa chỉ 8088 cĩ 20 bit địa chỉ, trong khi đĩ các thanh ghi quản lý bộ nhớ là 16 bit. Để xác định một ngăn nhớ cĩ địa chỉ 20 bit, nĩ dùng 2 thanh ghi 16 bit để xác định địa chỉ.  Một thanh ghi lưu địa chỉ đoạn.  Một thanh ghi lưu địa chỉ lệch (offset) Một địa chỉ yêu cầu trong một lệnh nào đĩ là địa chỉ logic cĩ dạng: DS:SI DS:DI DS:XX Địa vật lý (phải là số 20 bit) được xác định như sau: Địa vật lý = địa chỉ đoạn*16 + địa chỉ lệch Ví dụ: DS = 4000h, SI = 3F4Dh Địa chỉ logic của ngăn nhớ: 4000:3F4D Địa chỉ vật lí của ngăn nhớ: DS * 16 + SI = 40000 + 3F4D = 43F4Dh Tại một thời điểm CPU quản lý được 4 đoạn nhớ (DS, SS, CS, ES) , nĩ cĩ thể đồng thời truy nhập 4 đoạn đĩ. Bộ nhớ được chia thành nhiều đoạn. Mỗi đoạn cĩ kích thước tối đa là 64 KB. Vậy ta cĩ 16 đoạn tách rời và địa chỉ lệch thay đổi từ 0000 H đến FFFFh. Nếu địa chỉ đoạn thay đổi từ 0000h đến FFFFh thì cĩ 64 Kđoạn. Khi đĩ các đoạn bao trùm lên nhau. 2 đoạn kề nhau sẽ các nhau 16 Byte (Paragraph). Khi khởi động máy (hoặc Reset) CS được nạp giá trị F000h, IP được nạp giá trị FFF0h. Địa chỉ này chỉ đến chương trình khởi động trong ROM. Địa chỉ vật lý = F000h*16 + FFF0h = F0000h + FFF0h = FFFF0h 56 4.4.2. Kiến trúc CPU intel 4bit 57 CHƢƠNG V: Ợ NHỚ MÁY TÍNH Mục tiêu của chƣơng Giúp sinh viên nắm rõ chức năng và phân biệt được các loại bộ nhớ khác nhau được sử dụng trong máy tính. Hiểu được các thức quản lý và làm việc của Cache, HDD, CROM. Tĩm Tắt Trình bày chi tiết về bộ nhớ trong gồm các loại RAM, ROM, bộ nhớ đệm Cache và cơ chế quan lý Cache. Trình bày tổng quan về cách thức ghi đọc và lưu trữ dữ liệu trên ổ cứng HDD và CDROM. Giới thiệu một số phương pháp kiểm sốt và phục hồi lỗi truyền thơng trong bộ nhớ sử dụng kỹ thuật mã hố. 5.1. Tổng quan . . . Tìm hiểu các loại bộ nhớ Chúng ta cần xem xét bộ nhớ ở 2 gĩc độ là logic (hoạt động) và vật lý (cấu tạo). Trước hết chúng ta cần biết bộ nhớ là gì, chúng nằm ở đâu trong hệ thống và hoạt động như thế nào. Sau đĩ chúng ta sẽ xem xét một số loại bộ nhớ và tốc độ, hình dạng và các modul nhớ mà ta cĩ thể cài đặt. Bộ nhớ (memmory) là khơng gian làm việc của bộ vi xử lý. Đĩ là nơi cất giữ tạm thời các chương trình và dữ liệu đang được thao tác với bộ vi xử lý. Việc lưu trữ bộ nhớ được xem tạm thời vì dữ liệu chỉ tồn tại trong thời gian máy đang hoạt động và khơng bị khởi động lại. Trước khi khởi động lại hay tắt máy, dữ liệu đã thay đổi cần được ghi vào các thiết bị lưu trữ lâu dài – storage – (thường là ổ đĩa cứng) để sau này cĩ thể nạp lại vào bộ nhớ. Nhiều người mới làm quen với máy tính thường nhầm lẫn giữa bộ nhớ và đĩa lưu trữ(storage disk) bởi vì cả hai cùng sử dụng đơn vị đo lường là byte, Kilobyte, Megabyte, Gigabyte hoặc đơn vị cao hơn. Một điểm quan trọng mà chúng ta cần ghi nhớ đĩ là: một file khi được nạp vào trong bộ nhớ, nĩ chỉ là bản sao của file đĩ, cịn thực chất file đĩ vẫn tồn tại trong ổ đĩa. Vì tính chất tạm thời của bộ nhớ cho nên file đã bị thay đổi cần được ghi lại vào đĩa cứng trước khi tắt máy, vì khi tắt máy dữ liệu trong bộ nhớ sẽ bị xố. Bộ nhớ lưu trữ các chương trình đang chạy và dữ liệu của chúng sử dụng. Các chip nhớ cĩ lúc được gọi là lưu trữ khơng ổn định (volatile storage) bởi vì khi tắt máy hoặc cĩ sự cố về nguồn điện, lưu trữ trong RAM sẽ bị mất. Vì bản chất bất ổn định như vậy cho nên nhiều người dùng cĩ thĩi quen ghi lại thường xuyên (một số chương trình ứng dụng cĩ thể ghi một cách tự động theo thời gian đã định). 58 Các đặc trưng của bộ nhớ  Ví trí:  Bên trong CPU: Tập các thanh ghi (register), cache  Bộ nhớ trong: Bộ nhớ chính (Main memmory – RAM, ROM)  Bộ nhớ ngồi: Các thiết bị nhớ, RAID (HDD, CD-Rom, …)  Dung lượng:  Độ dài từ nhớ (tính bằng bit) – Kích thước trên một đơn vị lưu trữ  Số lượng từ nhớ - Dung lượng bộ nhớ  Đơn vị truyền:  Từ nhớ - Truyền tuần tự từng Word  Khối nhớ - Truyền một khối gồn n Word  Phương pháp truy nhập:  Truy nhập tuần tự (băng từ) – Để đến được điểm n đầu từ phải duyệt qua n-1 vị trí trước.  Truy nhập trực tiếp (các loại đĩa) – Đầu từ di chuyển trực tiếp đến vị trí cần đọc.  Truy nhập ngẫu nhiên (bộ nhớ bán dẫn) – ơ nhớ cần đọc sẻ được giả mã để lấy thơng tin ngay lập tức.  Truy nhập liên kết (cache) – Truy cập thơng qua ban sao của ơ nhớ cần đọc  Hiệu năng:  Thời gian truy nhập  Chu kỳ truy xuất bộ nhớ  Tốc độ truyền  Kiểu bộ nhớ vật lý:  Bộ nhớ bán dẫn – Lưu trữ bằng điện  Bộ nhớ từ - Lưu trữ dùng từ tính  Bộ nhớ quang – Lưu trữ sử dụng cơng nghệ Laze  Các đặc tính vật lý: 59  Khả biến/khơng khả biến  Xố được/khơng xố được . . . Mơ hình phân cấp bộ nhớ Việc trao đổi dữ liệu giữa CPU và bộ vi xử lý và bộ nhớ chính là một thao tác quan trọng, chiếm đa số trong các lệnh xử lý dữ liệu nên nĩ quyết định hiệu suất của hệ thống vi xử lý nĩi chung và máy tính nĩi riêng. Bộ nhớ chính và bộ nhớ ngồi thường cĩ tốc độ trao đổi dữ liệu chậm (chênh lệch) hơn so với tốc độ làm việc của CPU (kể cả việc vận chuyển dữ liệu trong bộ vi xử lý). Để nâng cao tốc độ xử lý dữ liệu chung của tồn hệ thống, người ta tìm cách nâng cao tốc độ trao đổi dữ liệu (kể cả lệnh) giữa bộ vi xử lý và bộ nhớ ngồi phạm vi bộ vi xử lý. Dựa trên nguyên lý cục bộ về khơng gian và thời gian mà người ta xây dựng hệ thống nhớ 5 cấp như sau:  Cấp 0 : Tập các thanh ghi nằm trong bộ vi xử lý. Thanh ghi là bộ nhớ kiểu SRAM nên tác động nhanh và thơng tin ổn định. Đây là thành phần nhớ cĩ tốc độ trao đổi dữ liệu nhanh nhất trong hệ thống vì nĩ gần ALU và CU. Tuy nhiên nĩ cĩ dung lượng nhỏ.  Cấp 1 : Primary cache (cache sơ cấp) : Là bộ nhớ cĩ tốc độ trao đổi dữ liệu rất nhanh (nhỏ hơn thanh ghi), cĩ dung lượng nhỏ và được đặt trong bộ vi xử lý, nhưng cũng cĩ thể nằm ngồi bộ vi xử lý. Trong các bộ vi xử lý tiên tiến, bộ nhớ cache thường được tách (chia) làm 2 với mục đích tránh xung đột trong xử lý song song (đại diện là pipline) là Icache : dành cho lệnh và Dcache : dành cho dữ liệu. CPU Registers 100s Bytes 1s ns Cache K Bytes 4 ns 1-0.1 cents/bit Main Memory M Bytes 100ns- 300ns $.0001-.00001 cents /bit Disk G Bytes, 10 ms (10,000,000 ns) 10 - 10 cents/bit Capacity Access Time Cost Tape infinite sec-min 10 -8 Upper Level -5 -6 Registers Cache Memory Disk Tape Instr. Operands Blocks Pages Files Staging Xfer Unit prog./compiler 1-8 bytes cache cntl 8-128 bytes OS 512-4K bytes user/operator Mbytes Lower Level faster Larger 60  Cấp 2 : Secondary cache (cache thứ cấp) : Cũng giống như Primary cache, nhưng loại này nằm ngồi bộ vi xử lý. Nĩ chỉ cĩ khi cĩ Primary cache (ngược lại, nĩ chính là Primary cache). Dung lượng của Secondary cache thường lớn hơn Primary cache và nhỏ hơn bộ nhớ.  Cấp 3 : Main Memory (Bộ nhớ chính): Chứa chương trình và dữ liệu đang hoạt động. Bộ nhớ này được bộ vi xử lý đánh địa chỉ trực tiếp và quản lý thơng qua địa chỉ đĩ. Một phần của chương trình đang được thi hành cĩ thể nằm trong cache (lệnh và dữ liệu) nhằm tăng tốc độ hoạt động của hệ thống. Dung lương của bộ nhớ chính thường lớn hơn rất nhiều lần dung lượng bộ nhớ cache. Như đã biết, trong các hệ thống máy tính hiện đại ngày nay thì bộ nhớ chính thường là DRAM.  Câp 4 : Secondary memory (Bộ nhớ thứ cấp – bộ nhớ ngồi): Bộ nhớ này cĩ dung lượng rất lớn nhưng tốc độ trao đổi dữ liệu chậm. Bộ nhớ này để lưu trữ chương trình và dữ liệu một cách lâu dài, cho nhiều người sử dụng (ghi/đọc, mất nguồn điện vẫn cịn thơng tin). Đại diện cho các bộ nhớ loại này đĩ chính là các ổ đĩa cứng, mềm CD ROM, CD – WOM, CD WR, băng từ, … . . ộ nhớ bán d n . . . ộ nhớ ROM Ðây là loại bộ nhớ dùng trong các hãng sãn xuất là chủ yếu. Nĩ cĩ đặc tính là thơng tin lưu trữ trong ROM khơng thể xố được và khơng sửa được, thơng tin sẽ được lưu trữ mãi mãi. Nhưng ngược lại ROM cĩ bất lợi là một khi đã cài đặt thơng tin vào rồi thì ROM sẽ khơng cịn tính đa dụng. Ví dụ điển hình là các con "chip" trên motherboard hay là BIOS ROM để vận hành khi máy tính vừa khởi động. 61  Các cơng nghệ ROM: - EPROM: Đối với EPROM, dữ liệu cĩ thể ghi vào bằng điện và cĩ thể xĩa được. EPROM sử dụng một transistor cĩ cấu trúc FAMOST (Floating gate avalanche injection MOS transistor). Đối với transistor loại này, cấu tạo cũng giống như dạng FET thơng thường nhưng trong cực gate tồn tại thêm một cực, gọi là cực nổi (floating gate). Nếu cực nổi khơng cĩ điện tích thì transistor này hoạt động như một FET thơng thường, nghĩa là nếu cực Gate cĩ điện áp dương thì FET dẫn, cực drain nối với cực source cực drain cĩ mức logic 1. Nếu cực nổi cĩ chứa điện tích thì nĩ sẽ tạo ra trường điện từ đủ sức ngăn chặn khơng cho FET dẫn cực drain cĩ mức logic 0. Quá trình nạp điện tử vào cửa nổi được thực hiện bằng các xung điện cĩ độ rộng khoảng 50 ms và biên độ 20V đặt vào cực gate và cực drain. Điện tử được lưu trữ tại vùng cửa nổi khi xung điện tắt (thời gian lưu trữ ít nhất là 10 năm). Để xĩa dữ liệu trên EPROM, ta phải chiếu ánh sáng tử ngoại vào chip nhớ. Các điện tử sẽ hấp thu năng lượng đủ để cĩ thể vượt ra khỏi cực nổi làm cho cực nổi khơng chứa điện tử tồn bộ EPROM chứa giá trị 1. Do đĩ, trên các chip EPROM sẽ cĩ một cửa số bằng thạch anh cho phép ánh sáng tử ngoại đi qua. - EEPROM Do việc sử dụng cửa sổ thạch anh khơng tiện lợi nên những năm gần đây đã xuất hiện them chip ROM cĩ thể xĩa bằng điện. Cấu tạo của EEPROM cũng giống như EPROM nhưng lúc này cĩ thêm một lớp màng mỏng oxide giữa vùng cực nổi và cực drain cho phép các điện tử di chuyển từ vùng cực nổi sang cực drain khi đặt một điện áp âm. Như vậy, quá trình lập trình cho EEPROM tương tự như EPROM trong khi đĩ để xĩa dữ liệu thì chỉ cẩn đặt một điện áp -20V vào cực gate và cực drain vĩi thời gian thích hợp (vì nếu thời gian quá dài thì các điện tử sẽ di chuyển thêm sang cực drain làm cho cực nổi sẽ cĩ điện tích dương FET sẽ khơng hoạt động như bình thường). 5.2. . ộ nhớ R M RAM là thế hệ kế tiếp của ROM, cả RAM và ROM đều là bộ nhớ truy xuất ngẫu nhiên, tức là dữ liệu được truy xuất khơng cần theo thứ tự. Tuy nhiên ROM chạy chậm hơn RAM rất nhiều. Thơng thường ROM cần trên 50ns để xử lý dữ liệu trong khi đĩ RAM cần dưới 10ns. a) DRAM  Cấu tạo của DR M Địa chỉ xác định ơ nhớ chia thành 2 phần: địa chỉ hàng và cột. Hai địa chỉ này được đưa lần lượt vào bộ đệm. Quá trình dồn kênh địa chỉ điều khiển bằng các tín 62 hiệu RAS (Row Access Strobe) và CAS (Column Access Strobe). Bộ điều khiển nhớ của CPU phải thực hiện 3 cơng việc sau: chia địa chỉ từ CPU thành các địa chỉ hàng và cột; tích cực các chân RAS , CAS và WE một cách chính xác; truyền và nhận các dữ liệu đọc, ghi. Hình 31: Sơ đồ khối của DRAM Một ơ nhớ của DRAM cĩ thể biểu diễn như Hình 32: Hình 32: Cấu trúc 1 ơ nhớ của DRAM  Làm tƣơi DR M Điện tích trên tụ điện bị giảm theo thời gian do chúng phĩng qua FET và lớp điện mơi oxide làm cho dữ liệu cĩ thể bị mất. Do đĩ, tụ điện phải được nạp lại một cách tuần hồn (refresh), thơng thường khoảng từ 1 ÷ 16 ms tùy theo loại RAM. Cĩ 3 phương pháp refresh:  Chỉ tác động R S: Tạo chu kỳ đọc giả (dummy read) để làm tươi ơ nhớ. Trong chu kỳ giả này, tín hiệu RAS tích cực và địa chỉ hàng được đưa vào DRAM nhưng CAS bị cấm nên khơng thể truyền dữ liệu ra ngồi được. Để làm tươi tồn bộ bộ nhớ thì tất cả các địa chỉ phải được cấp lần lượt. Nhược điểm của phương pháp này là cần phải dùng mạch 63 logic hay một chương trình để làm tươi. Trong máy tính, điều này thực hiện bằng kênh 0 của DMAC 8237, tác động định kỳ bằng bộ đếm 1 của PIT 8253.  Tác động C S trƣớc R S: DRAM cĩ một mạch logic làm tươi của riêng nĩ với một bộ đếm địa chỉ. Tín hiệu CAS sẽ tích cực trong một khoảng thời gian trước khi RAS tích cực. Địa chỉ làm tươi được phát ra bên trong bằng bộ đếm địa chỉ mà khơng cần mạch logic bên ngồi. Sau mỗi chu kỳ làm tươi, bộ đếm địa chỉ sẽ tự động tăng lên 1 để chỉ địa chỉ kế tiếp.  Ẩn: Chu kỳ làm tươi được chứa sau chu kỳ đọc bộ nhớ. Tín hiệu CAS giữ nguyên mức thấp trong khi chỉ cĩ RAS lên mức cao. Ở đây, bộ đếm địa chỉ cũng tự phát ra địa chỉ làm tươi.Việc đọc dữ liệu trong chu kỳ đọc cũng cĩ thể thực hiện ngay cả khi đang thực hiện chu kỳ làm tươi. Phương pháp này sẽ tiết kiệm được thời gian do thời gian làm tươi thường ngắn hơn so với thời gian đọc. b) SRAM Đối với SRAM, nội dung ơ nhớ vẫn giữ nguyên khi chưa mất nguồn cung cấp mà khơng cần phải tốn thời gian làm tươi ơ nhớ. Do điện áp chênh lệch lớn nên thời gian xử lý khuếch đại sẽ nhỏ hơn trong DRAM (thời gian truy xuất của DRAM là khoảng 1ns trong khi của DRAM khoảng 40ns). Từ đĩ, SRAM khơng thực hiện phân kênh địa chỉ hàng và cột (điều này sẽ làm giảm thời gian truy xuất). Sau khi dữ liệu ổn định, bộ giải mã cột chọn cột phù hợp và đưa dữ liệu đến bộ đệm ngõ ra. Các khác biệt của SRAM so với DRAM: o Tốc độ của SRAM lớn hơn DRAM do khơng phải tốn thời gian refresh.. o Chế tạo SRAM tốn kém hơn DRAM nên thơng thường sử dụng DRAM để hạ giá thành sản phẩm. 5.2.3. Một số loại R M - FPM - DRAM (Fast Page Mode DRAM) DRAM chuẩn được truy cập qua một kỹ thuật được gọi là kỹ thuật phân trang (paging). Việc truy cập thơng thường bằng cách chọn địa chỉ hàng và địa chỉ cột mất rất nhiều thời gian (giải mã hai bước). Phân trang cho phép truy nhập tất cả dữ liệu trong một hàng nhanh hơn bằng cách giữ nguyên địa chỉ các hàng và chỉ thay đổi giá trị cột. Bộ nhớ sử dụng kỹ thuật này gọi là bộ nhớ đánh số trang Page mode hay Fast page Mode (FPM). Ngồi ra cịn một số cách gọi khác là: Column hay Nibble Mode Memory. 64 - EDO - DRAM (Extended Data Out DRAM) Một loại bộ nhớ khác gọi là EDO RAM được dùng trong các máy Pentium từ năm 1995. EDO là bộ nhớ kiểu FPM đã được sửa lỗi hay cịn được gọi là Hyper Page Mode. Hãng Micron Technology đã phát minh ra và lấy bằng sáng chế EDO RAM. Bộ nhớ EDO gồm những Chip được sản xuất đặc biệt cho phép chồng các lần truy nhập liên tiếp. Cái tên Extended Data Out xuất phát từ thực tế là khơng giống như FPM, các trình điều khiển dữ liệu ra (data output driver) trên chip khơng bị tắt khi mạch điều khiển bộ nhớ xố địa chỉ cột để bắt đầu chu kỳ tiếp theo. Điều này cho phép chu kỳ tiếp theo chồng lên chu kỳ trước và tiết kiệm thời gian được khoảng 10ns một chu kỳ. Để sử dụng bộ nhớ EDO, chipset của mainboard phải hỗ trợ bộ nhớ đĩ. Hầu hết các mainboard về sau kể từ loại Intel 430 FX (Trion) cơng bố năm 1995 đều hỗ trợ EDO RAM. Do chi phí cho chip bộ nhớ EDO tương đương chip chuẩn và các mainboard Intel đều hỗ trợ EDO nên thị trường máy tính tập trung vào bộ nhớ EDO. Rất lý tưởng khi sử dụng EDO RAM cho các máy cĩ tốc độ bus dưới 66 MHz, tức là các máy trên thị trường trước năm 1998. Từ năm 1998, thị phần của EDO RAM đã giảm do bộ nhớ chính nhanh hơn và mới hơn là SDRAM (Synchronuos DRAM) đã trở thành bộ nhớ chuẩn của các máy PC mới. - BDEO-DRAM (Burst Extended Data Out DRAM) Là thế hệ sau của EDO DRAM, dùng kỹ thuật đường ống (pipeline) để rút ngắn thời gian dị địa chỉ. - SDRAM (Synchronous DRAM) Ðây là một loại RAM cĩ nguyên lý chế tạo khác hẳn với các loại RAM trước. Đồng bộ (synchronous) là một khái niệm rất quan trọng trong lĩnh vực số. RAM hoạt động do một bộ điều khiển xung nhịp (clock memory), dữ liệu sẽ được truy xuất hay cập nhật mỗi khi clock chuyển từ logic 0 sang 1, đồng bộ cĩ nghĩa là ngay lúc clock nhảy từ logic 0 sang 1 chứ khơng hẳn là chuyển sang logic 1 hồn tồn (tác động bằng cạnh xung). Do kỹ thuật này, SDRAM và các thế hệ sau cĩ tốc độ cao hơn hẳn các loại DRAM trước, đạt tốc độ 66, 100, 133 MHz. - DDR SDRAM (Double Data Rate SDRAM) Ðây là loại bộ nhớ cải tiến từ SDRAM. Nĩ nhân đơi tốc độ truy cập của SDRAM bằng cách dùng cả hai quá trình đồng bộ khi clock chuyển từ logic 0 sang 1 và từ logic 1 sang 0 (dùng cả cạnh âm và cạnh dương). Loại RAM này được CPU Intel và AMD hỗ trợ, tốc độ vào khoảng 266 MHz. (DDR-SDRAM đã ra đời trong năm 2000) 65 - DRDRAM (Direct Rambus DRAM) Hệ thống Rambus (tên hãng chế tạo) cĩ nguyên lý và cấu trúc chế tạo hồn tồn khác loại SDRAM truyền thống. Bộ nhớ sẽ được vận hành bởi một hệ thống phụ gọi là kênh truyền Rambus trực tiếp (direct Rambus channel) cĩ độ rộng bus 16 bit và một xung clock 400MHz (cĩ thể lên tới 800MHz). Theo lý thuyết thì cấu trúc mới nầy sẽ cĩ thể trao đổi dữ liệu với tốc độ 400MHz x 16 bit = 400MHz x 2 bytes = 800 MBps. Hệ thống Rambus DRAM cần một chip serial presence detect (SPD) để trao đổi với motherboard. Ta thấy kỹ thuật mới nầy dùng giao tiếp 16 bit, khác hẳn với cách chế tạo truyền thống là dùng 64 bit cho bộ nhớ nên kỹ thuật Rambus cho ra đời loại chân RIMM (Rambus Inline Memory Module), khác so với bộ nhớ truyền thống. Loại RAM này chỉ được hỗ trợ bởi CPU Intel Pentum IV, tốc độ vào khoảng 400 – 800 MHz - SLDRAM (Synchronous - Link DRAM) Là thế hệ sau của DRDRAM, thay vì dùng kênh Rambus trực tiếp 16 bit và tốc độ 400MHz, SLDRAM dùng bus 64 bit chạy với tốc độ 200MHz. Theo lý thuyết thì hệ thống mới cĩ thể đạt được tốc độ 200MHz x 64 bit = 200MHz x 8 bytes = 1600 MBps, tức là gấp đơi DRDRAM. Ðiều thuận tiện là là SLDRAM được phát triển bởi một nhĩm 20 cơng ty hàng đầu về vi tính cho nên nĩ rất da dụng và phù hợp nhiều hệ thống khác nhau. - VRAM (Video RAM) Khác với bộ nhớ trong hệ thống, do nhu cầu về đồ hoạ ngày càng cao, các hãng chế tạo card đồ họa đã chế tạo VRAM riêng cho video card của họ mà khơng cần dùng bộ nhớ của hệ thống chính. VRAM chạy nhanh hơn vì ứng dụng kỹ thuật Dual Port nhưng đồng thời cũng đắt hơn rất nhiều. - SGRAM (Synchronous Graphic RAM) Là sản phẩm cải tiến của VRAM, nĩ sẽ đọc và viết từng block thay vì từng mảng nhỏ. . .4. Thiết kế module nhớ  Sơ đồ cơ bản của chip nhớ: 66 Hình 33: Các thành phần giao tiếp của một chip nhớ cơ bản  Các tín hiệu của chip nhớ o Các đường địa chỉ: A0…An-1 để xác định 2n ngăn nhớ. o Các đường dữ liệu: D0…Dm-1 độ dài từ nhớ (m bit) => dung lượng chip nhớ = 2n x m bit o Các tín hiệu điều khiển  Tín hiệu chọn chip hoạt động: CS (Chip Select)  Tín hiệu điều khiển đọc hoặc ghi (WE: Write Enable; OE: Output Enable)  Thường các tín hiệu điều khiển tích cực với mức 0  Thiết kế module nhớ bán dẫn o Cho chip nhớ 2n x m bit o Yêu cầu sử dụng chip nhớ trên thiết kế module nhớ dung lượng là bội kích thước chip nhớ trên.  Giải quyết vấn đề o Cĩ hai cách:  Thiết kế để tăng độ dài từ nhớ, số ngăn nhớ khơng thay đổi.  Thiết kế để tăng số lượng ngăn nhớ, độ dài từ nhớ khơng thay đổi. - Thiết kế tăng số lƣ ng từ nhớ Cách thiết kế này nhằm tăng kích thước của 1 ơ nhớ, nhằm làm tăng dung lượng trong một lần truy xuất bộ nhớ. Cũng giống như ta cĩ 100 lơ đất, mỗi lơ rộng 100m 2, bây giờ ta thiết kế để vẫn 100 lơ đĩ nhưng mỗi lơ cĩ kích thước là 200m2. Rõ dàng ta thấy vì vẫn là 100 lơ nên số địa chỉ cho mỗi lơ đất vẫn khơng đổi (n khơng đổi) chỉ cĩ kích thước của mơi lơ đất (mỗi ơ nhớ) là thay đổi. o Giả thiết: Cho các chip nhớ cĩ dung lượng 2n x m bit. (n là số đường địa chỉ, m là số bít trong một ơ nhớ) o Yêu cầu: Thiết kế module nhớ cĩ kích thước: 2n x (k.m) bit 67 Giải quyết: Để thiết kế được yêu cầu ta xác định hai thơng số n (số đường địa chỉ)và k(số chip nhớ cần để ghép vào module thiết kế. Ví dụ: Cho các chip nhớ SDRAM dung lượng 4K x 4 bit. Hãy thiết kế module nhớ cĩ kích thước 4K x 8 bit Giải: Dung lượng chip nhớ 4k x 4 bit = 212k x 4 bit, => số đường địa chỉ n = 12, số đường dữ liệu m=4. Nhận thấy với yêu cầu của đề bài thì số đường địa chỉ là 12 đường khơng đổi (số ngăn nhớ khơng thay đổi), số đường dữ liệu là 8 (tức kích thước một ơ nhớ đang từ 4 bit tăng lên thành 8bit), vậy số chip sử dụng để thiết kế là 2(k=2). Mạch thiết kế: - Thiết kế tăng số lƣ ng ngăn nhớ Cách này làm tăng số lượng ơ nhớ mà khơng thay đổi kích thước của một ơ nhớ, ví dụ ta tăng lên 200 lơ đất nhưng mỗi ơ vẫn là 100m2. o Giả thiết: Cho các chip nhớ cĩ dung lượng 2n x m bit. o Yêu cầu: Thiết kế module nhớ cĩ kích thước: 2k.2n x m bit Giải quyết: Để thiết kế được ta xác định hai thơng số n+k (số đường địa chỉ mới để mã hĩa đủ số ơ nhớ cần thiết kế) và 2k (số chip nhớ cần để ghép vào module thiết kế). 68 Ví dụ : Cho các chip nhớ SDRAM dung lượng 4K x 8 bit. Hãy thiết kế module nhớ cĩ kích thước 8K x 8 bit. Giải: Nhận thấy rằng đề yêu cầu tăng số lượng ơ nhớ lên 2 lần tức từ 4K lên 8K, cịn kích thước một ơ nhớ vân là 8 bit. Dung lượng 4k x 8bit = 212k x 8 bit, => số đường địa chỉ là n =12 và số đường dữ liệu m=8. Yêu cầu mới là 8k x 8bit = 213k x 8bit = 2 x 212k x 8bit = 2 chíp nhớ 4kx8bit. Mạch thiết kế: . . . Phát hiện lỗi và sửa lỗi trong bộ nhớ Nguyên tắc chung: Trong quá trình truyền dữ liệu cĩ thể gặp sự thay đổi các bit thơng tin do nhiễu hoặc do sai hỏng của thiết bị hay module vào ra. Vì vậy, thực tế đặt ra là phải làm sao phát hiện được lỗi và cĩ thể sửa sai được. Một trong phương pháp phát hiện lỗi (EDC: Error Dectecting Code) và sửa lỗi (ECC: Error Correcting Code) là: Giả sử cần kiểm tra m bit thì người ta ghép thêm k bit kiểm tra được mã hố theo cách nào đĩ rồi truyền từ ghép m+k bit (k bit được truyền khơng mang thơng tin nên gọi là bit dư thừa) Trong đĩ m là số bit cần ghi vào bộ nhớ và k bit là số bit cần tạo ra kiểm tra lỗi trong m bit. Khi đọc dữ liệu ra cĩ khả năng sau: o Khơng phát hiện dữ liệu cĩ lỗi. 69 o Phát hiện thấy dữ liệu lỗi và cĩ thể hiệu chỉnh dữ liệu lỗi thành đúng. o Phát hiện thấy lỗi nhưng khơng cĩ khả năng chỉ ra lỗi vì thế phát ra tín hiệu báo lỗi. Sơ đồ phát hiện lỗi và sửa lỗi: Ví dụ : Phát hiện lỗi với bit chẵn lẻ (Party) Mã EDC đơn giản là bit chẵn lẻ được gắn thêm vào các bit dữ liệu. Bit chẵn lẻ =1: nếu số bit 1 trong xâu là lẻ. Hoặc sử dụng bit chẵn lẻ =0: nếu số bit 1 là chẵn  Ưu điểm: đơn giản và số bit dư thừa ít.  Nhược điểm: khơng định vị được lỗi, hoặc nếu cĩ sự thay đổi cả hai bit hoặc 1 hoặc 0 thì khơng phát hiện được. Khắc phục nhược điểm trên xây dựng mã EDC cho từng khối Giả thiết một khung truyền một ký tự ASCII 7 bit cĩ nơi dung như sau: 1 0 0 1 1 0 1 Khi đĩ sử dụng thêm một bit party đếm số bit 1 trong khung là: 1 0 0 1 1 0 1 1 Ví dụ : Phát hiện lỗi bằng m dƣ thừa CRC (Cycle Redundary Check). Nguyên tắc: Một xâu nhị phân bất kỳ cĩ thể coi là tập hợp các hệ số của đa thức B(x) trong đĩ x là biến. Chọn đa thức G(x) là đa thức nào đĩ ta quy định trước gọi đa thức sinh. Ta tiến hành chia module2 đa thức B(x) cho G(x) ta được thương số Q(x) và phần dư R(x). 70  Đa thức sinh do tổ chức viễn thơng quốc tế quy định.  Khi đĩ ta cần truyền xâu B(x) + R(x) bit  Để kiểm tra lỗi ta cần chia giá trị nhận được cho đa thức sinh nếu phép chia cĩ dư thì cĩ lỗi xuất hiện trong xâu Giả thiết ta cần truyền một xâu 1101000111 o đa thức B(x) = x9 + x8 + x6 + x2 + x +1 o giả sử dùng đa thức sinh G(x)= x4 + x + 1 (chuỗi 10011) o R(x) = B(x) mod G(x) o Chia module 2 như sau: Nếu dãy nhị phân đầu vào bên trên cĩ bít cực tả (đầu tiên bên trái) là 0, khơng làm gì hết và dịch số chia sang phải một bít. Nếu dãy nhị phân đầu vào bên trên cĩ bít cực tả là 1, lấy dãy số đầu vào trừ đi số chia (hay nĩi cách khác, lấy từng bít ở dãy số đầu vào trên trừ đi từng bít ở số chia). Số chia sau đĩ dịch vị trí 1 bít sang phải, quá trình cứ tiếp diễn như vậy đến khi số chia chạm tới tận cùng bên phải của dãy số đầu vào. B1: 1101000111 10011 0100100111 B2: 0100100111 10011 0000010111 B3: 0000010111 10011 0000000100  R(x) = 100  Khung cần truyền 1101000111 100 Ví dụ : M sửa lỗi Hamming Nguyên tắc: Một từ mã Hamming gồm m bit dữ liệu và k bit kiểm tra chẵn lẻ. Mỗi bit được chọn vị trí thích hợp để phát hiện chính xác ví trí để cĩ thể sửa lỗi được. Ví dụ: chọn m=4 => k=3 (m=2n; k=n+1) Dữ liều 4 bit ký hiệu là: I4 I3 I2 I1 3 Bít điều khiển ký hiệu là: C3 C2 C1 Ta cĩ thứ tự trong khung truyền đi như sau: 7 6 5 4 3 2 1 71 I4 I3 I2 C3 I1 C2 C1 Các bit này được mã hố theo quy luật sau (sử dụng phép logic XOR): Giả thiết ta cần truyền 4 bit dữ liệu như sau: I4 I3 I2 I1 1 1 0 1  C1 = I1 xor I2 xor I4 = 1 xor 0 xor 1 = 0  C2 = I1 xor I3 xor I4 = 1 xor 1 xor 1 = 1  C3 = I2 xor I3 xor I4 = 0 xor 1 xor 1 = 0 Vậy khung truyền đi cĩ dạng như sau: 7 6 5 4 3 2 1 I4 I3 I2 C3 I1 C2 C1 1 1 0 0 1 1 0 Giả sử bên nhận khi nhận được khung này bị lỗi một bít ở vị trí I2, I2 đang bằng 0 đã bị lỗi thành 1 Khi đĩ khung dữ liệu nhận được bên nhận là 7 6 5 4 3 2 1 I4 I3 I2 C3 I1 C2 C1 1 1 1 0 1 1 0 Ta tách ra lấy: - Phần dữ liệu: I4 I3 I2 I1 = 1111 - Phần điều khiển C3 C2 C1 = 010 Ta tính lại các bít điều khiển từ phần dữ liệu:  C1 = I1 xor I2 xor I4 = 1 xor 1 xor 1 = 1  C2 = I1 xor I3 xor I4 = 1 xor 1 xor 1 = 1  C3 = I2 xor I3 xor I4 = 1 xor 1 xor 1 = 1 72 Như vậy phần điều khiển bên nhận tính ra là 111 khác so với bên gửi thu được là 010 chứng tỏ dữ liệu đã bị lỗi trên đường truyền, vấn đề tiếp theo là xác định vị trí bị lỗi để bên nhận tự sửa lại mà khơng cần báo lại cho bên gửi. Lấy 111 xor 010 = 101 đổi sang cơ số mười 101=5, đây chính là vị trí bít lỗi trong khung truyền 7 6 5 4 3 2 1 I4 I3 I2 C3 I1 C2 C1 1 1 1 0 1 1 0 Vì bít 5 bị lỗi, giá trị của nĩ đang bằng 1 => giá trị đúng cịn lại chỉ là 0, vậy khung truyền chính xác bên nhận tự sửa là: 7 6 5 4 3 2 1 I4 I3 I2 C3 I1 C2 C1 Nh n 1 1 1 0 1 1 0 Sửa 1 1 0 0 1 1 0 Nhận xét: Hồn tồn đúng với bản gốc bên gửi. . . ộ nhớ đệm nhanh – Cache 5.3. . Tổng quan và ngh a của Cache Bộ nhớ Cache là kiểu bộ nhớ tốc độ cao cĩ bên trong CPU để tăng tốc độ truy cập cho dữ liệu và các lệnh được lưu trong bộ nhớ RAM. Một máy tính sẽ hồn tồn vơ dụng nếu bạn khơng bắt bộ vi xử lý (CPU) thực hiện một nhiệm vụ nào đĩ. Cơng việc sẽ được thực hiện thơng qua một chương trình, chương trình này lại gồm rất nhiều các lệnh để ra lệnh cho CPU làm việc. CPU lấy các chương trình từ bộ nhớ RAM. Tuy nhiên cĩ một vấn đề với bộ nhớ RAM đĩ là khi nguồn nuơi của nĩ bị cắt thì các thành phần dữ liệu được lưu trong RAM cũng sẽ bị mất – chính điều này nên một số người nĩi rằng bộ nhớ RAM là một mơi trường dễ bay hơi . Các chương trình và dữ liệu như vậy phải được lưu trên mơi trường khơng dễ bay hơi sau khi tắt máy tính (giống như các ổ đĩa cứng hay các thiết bị quang như đĩa CD và DVD). Khi kích đúp vào một biểu tượng trong Windows để chạy một chương trình nào đĩ. Các chương trình thơng thường được lưu trên ổ đĩa cứng của máy tính, khi được gọi nĩ sẽ được nạp vào bộ nhớ RAM sau đĩ từ bộ nhớ RAM, CPU nạp chương trình thơng qua một mạch cĩ tên gọi là memory controller, thành phần này được đặt 73 bên trong chipset (north bridge chip- chíp cực bắc) trên các bộ vi xử lý Intel hoặc bên trong CPU trên các bộ vi xử lý AMD. Vấn đề là CPU khơng thể tìm nạp dữ liệu trực tiếp từ các ổ đĩa cứng vì tốc độ truy suất dữ liệu của ổ đĩa cứng là quá thấp với nĩ, thậm chí nếu nếu bạn cĩ cả ổ đĩa cứng với tốc độ truy suất lớn nhất. Hãy lấy một số ví dụ làm dẫn chứng cho điều này, ổ cứng SATA-300 – một loại ổ đĩa cứng cĩ tốc độ nhanh nhất hiện đang được cung cấp ngày nay đến phần lớn người dùng – cĩ tốc độ truyền tải theo lý thuyết là 300 MB/s. Một CPU chạy với tốc độ 2GHz với đường dữ liệu* 64-bit sẽ truyền tải dữ liệu bên trong với tốc độ 16GB/s – như vậy là lớn gấp 50 lần. Sự khác nhau trong tốc độ cũng bắt nguồn từ một thực tế đĩ là các ổ đĩa cứng cịn bao gồm cả hệ thống cơ khí, các hệ thống cơ khí này bao giờ cũng chậm hơn hệ thống điện tử thuần túy, các thành phần cơ khí phải chuyển động để dữ liệu mới cĩ thể được đọc ra (điều này chậm hơn rất nhiều so với việc chuyển động của điện tử). Hay nĩi cách khác, bộ nhớ RAM là 100% điện tử, cĩ nghĩa là nĩ sẽ nhanh hơn tốc độ của ổ đĩa cứng và quang. Tuy nhiên đây chính là vấn đề, thậm chí bộ nhớ RAM nhanh nhất cũng khơng nhanh bằng CPU. Nếu bạn sử dụng các bộ nhớ DDR2-800, chúng truyền tải dữ liệu ở tốc độ 6.400 MB/s – 12.800 MB/s nếu sử dụng chế độ hai kênh. Thậm chí con số này cịn cĩ thể lên đến 16GB/s trong ví dụ trước, vì các CPU hiện nay cịn cĩ thể tìm nạp dữ liệu từ L2 memory cache ở tốc độ 128- bit hay 256-bit, chúng ta đang nĩi về 32 GB/s hoặc 64 GB/s nếu CPU làm việc bên trong với tốc độ 2GHz. Giải pháp đã tìm thấy để giảm sự ảnh hưởng trong việc sử dụng bộ nhớ RAM chậm hơn CPU là sử dụng một số lượng nhỏ các RAM tĩnh giữa CPU và bộ nhớ RAM. Cơng nghệ này được gọi là bộ nhớ Cache và ngày nay cĩ một số lượng nhỏ bộ nhớ tĩnh này được đặt bên trong CPU. Bộ nhớ Cache copy hầu hết các dữ liệu đã được truy cập gần đây từ bộ nhớ RAM vào bộ nhớ tĩnh và đốn dữ liệu gì CPU sẽ hỏi tiếp theo, tải chúng đến bộ nhớ tĩnh trước khi CPU yêu cầu thực sự. Mục đích là làm cho CPU cĩ thể truy cập vào bộ nhớ Cache thay vì truy cập trực tiếp vào bộ nhớ RAM, vì nĩ cĩ thể truy vấn dữ liệu từ bộ nhớ Cache một cách tức thời hoặc cũng hầu như ngay lập tức thay vì phải đợi khi truy cập vào dữ liệu được đặt trong RAM. CPU càng truy cập vào Cache nhớ thay cho RAM nhiều hơn thì hệ thống sẽ càng hoạt động nhanh hơn. Cũng theo đĩ, chúng ta sẽ sử dụng hốn đổi hai thuật ngữ dữ liệu và chỉ lệnh cho nhau vì những gì được lưu bên trong mỗi địa chỉ nhớ khơng cĩ gì khác biệt đối với bộ nhớ. Nguyên tắc:  Cache cĩ tốc độ truy xuất nhanh hơn rất nhiều bộ nhớ chính 74  Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ trao đổi thơng tin giữa CPU và bộ nhớ chính.  Cache thường được đặt trong chip vi xử lý Các thao tác chính của Cache:  CPU yêu cầu lấy nội dung của một ngăn nhớ bằng việc đưa ra một địa chỉ xác định ơ nhớ.  CPU kiểm tra xem cĩ nội dung cần tìm trong Cache o Nếu cĩ: CPU nhận dữ liệu từ bộ nhớ Cache o Nếu khơng cĩ: Bộ điều khiển Cache đọc Block nhớ chứa dữ liệu CPU cần vào Cache. Tiếp đĩ chuyển dữ liệu từ Cache đến CPU  Sơ đồ thao tác cache, bộ nhớ chính và CPU 75  Cấu trúc bộ nhớ Cache: - Bộ nhớ cache được chia thành các line (C line), mỗi line chia thành 2 trường, trường Tag và Block. Trường Tag lưu địa chỉ của ơ nhớ được chuyển vào cache từ main memmory (RAM). Trường Block lưu dữ liệu của block chuyển từ MainMem vào. - Trên MainMem cũng được chia thành các block cĩ kích thước bằng kích thước block trên Cache. - Trong mỗi block lại được chia thành k word. Vậy: o Trên MainMem cĩ 2n word => số block = 2n/k o Kích thước của cache = C * k word . . . Các phƣơng pháp ánh xạ cache a) Ánh xạ tr c tiếp Nguyên tắc: Mỗi Block của bộ nhớ chính chỉ cĩ thể được nạp vào một vị trí Line duy nhất của cache: 76 - B0 -> L0 - B1 -> L1 - .... - Bm-1 -> Lm-1 - Bm -> L0 - Bm+1 -> L1 - .... Tổng quát: B(j) chỉ cĩ thể được nạp vào L(j mod m) (với m là số Line của cache). Mơ tả:  Đặc điểm của ánh xạ tr c tiếp Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba trường: Line 0 1 2 Block 0 1 2 3 4 5 6 7 8 77 o Trường Word gồm W bit xác định một từ nhớ trong Block hay Line: 2 w = kích thước của Block hay Line o Trường Line gồm L bit xác định một trong số các Line trong cache: 2L = số Line trong cache = m o Trường Tag gồm T bit: T = N - (W+L), 2T = số block của bộ nhớ chính Khi CPU phát ra một địa chỉ A cĩ N bit với 3 trường trên, đầu tiên CPU sẽ truy cập vào line (L mod m) trên cache, so sánh trường tag của line này với trường tag trong địa chỉ A, nếu giống nhau (Cache hit) thì word thứ W trong line này sẽ được tải vào CPU. Nếu khác nhau (Cache miss) tức trong cache chưa cĩ ơ nhớ cần truy xuất, hệ thống sẽ truy xuất tới block thứ T (trường tag trong A) để tải block đĩ vào cache. Ƣu điểm: o Bộ so sánh đơn giản vì chỉ thực hiện một lần với 2 tốn hạng vào Nhƣ c điểm: o Xác suất cache hit thấp và hiệu xuất của cache khơng cao vì mỗi một block chỉ cĩ thể đưa vào một vị trí xác định trong khi các vị trí khác cĩ thể đang trống. Ví dụ: Hãy xác định giá trị của Line(block), Tag và Word trong địa chỉ cĩ kích thước 32 bit là 3FE9704Ah, biết rằng: o Bộ nhớ sử dụng cơ chế ánh xạ trực tiếp. o 1 word=2 byte: o Kích thước cache 16K line o Kích thước của 1 bock = 1 line = 16 word Giải: o 3FE9704Ah = 0011 1111 1110 1001 0111 0000 0100 1010 b o Kích thước cache 16K line = 214 line => L=14 bit o Kích thước 1 block = 16 word = 24 => k = 4 bit o => Số bít cho trường Tag = 32 – 4 – 14 = 14 o Kết quả là: Tag Line Word 78 Size 14 bit 14 bit 4 bit Hệ nhị phân 0011 1111 1110 10 01 0111 0000 0100 1010 Hệ 4090 5892 10 b) Ánh xạ tồn phần Để khắc phục nhược điểm của phương pháp trực tiếp là, cĩ thể rất nhiều block tranh chấp 1 line trên cache trong khi các vị trí khác bỏ trống, thì phương pháp này cho phép một block trên MainMem được tải vào một vị trí line bất kỳ cịn trống trên cache. Nguyên tắc:  Mỗi Block cĩ thể nạp vào bất kỳ Line nào của cache.  Địa chỉ của bộ nhớ chính bao gồm hai trường: o Trường Word giống như trường hợp ở trên. o Trường Tag dùng để xác định Block của bộ nhớ chính. Tag xác định Block đang nằm ở Line đĩ Mơ tả:  Đặc điểm của ánh xạ tịa phần Khi CPU phát ra một địa chỉ A gồm N bit trong đĩ cĩ 2 trường tag + word. Đầu tiên CPU sẽ duyệt từ line 0 cho đến hết, lần lượt kiêm tra trường Tag cua line 79 hiện thời nếu trùng với trường Tag của A tức cache hit thì ơ nhớ Word sẽ được tải vào CPU. Trái lại khơng tìm thấy line nào cĩ tag trùng với Tag của A tức cache miss thì CPU phải truy xuất vào block thứ Tag trên MainMem. Ƣu điểm:  Hiệu xuất cache tối đa, cache hit cao. Nhƣ c điểm:  Tốc độ tìm kiếm chậm, bộ so sánh phức tạp vì phải lấy tất các các tag của cache để so sánh. c) Ánh xạ liên kết thành bộ Đây là phương pháp án dụng cả hai phương pháp trên, trên cache và MainMem nhĩm các line hay block lại thành các SET, khi đĩ một block thuộc một SET thứ S trên M

Các file đính kèm theo tài liệu này:

  • pdfBÀI GIẢNG CẤU TRÚC MÁY TÍNH 2.pdf
Tài liệu liên quan