Bài giảng Máy tính công nghiệp và giao tiếp trong cơ điện tử - Nguyễn Kim Khánh

Nội dung
Chương 1. Giới thiệu chung
Chương 2. Cơ bản về logic số
Chương 3. CPU và kiến trúc tập lệnh
Chương 4. Bộ nhớ
Chương 5. Hệ thống vào-ra
Chương 6. Ghép nối vào-ra 
pdf 298 trang thiennv 08/11/2022 6560
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Máy tính công nghiệp và giao tiếp trong cơ điện tử - Nguyễn Kim Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_may_tinh_cong_nghiep_va_giao_tiep_trong_co_dien_tu.pdf

Nội dung text: Bài giảng Máy tính công nghiệp và giao tiếp trong cơ điện tử - Nguyễn Kim Khánh

  1. NKK-HUST Phân loại máy tính n Phân loại truyền thống: n Máy vi tính (Microcomputers) n Máy tính nhỏ (Minicomputers) n Máy tính lớn (Mainframe Computers) n Siêu máy tính (Supercomputers) May2014 IT6223 11
  2. NKK-HUST Phân loại máy tính hiện đại n Thiết bị di động cá nhân (Personal Mobile Devices): n Smartphones, Tablet n Máy tính cá nhân (Personal Computers) n Desktop computers, Laptop computers n Máy chủ (Servers) n Thực chất là Máy phục vụ n Dùng trong mạng theo mô hình Client/Server n Máy tính cụm/máy tính qui mô lớn (Clusters/Warehouse Scale Computers): n Sử dụng tại các trung tâm tính toán, trung tâm dữ liệu n Supercomputers n Máy tính nhúng (Embedded Computers) n Đặt ẩn trong thiết bị khác n Được thiết kế chuyên dụng n Máy tính công nghiệp thuộc loại này May2014 IT6223 12
  3. NKK-HUST 1.2. Kiến trúc máy tính n Kiến trúc máy tính bao gồm: n Kiến trúc tập lệnh (Instruction Set Architecture): nghiên cứu máy tính theo cách nhìn của người lập trình (hardware/ software interface). n Tổ chức máy tính (Computer Organization) hay Vi kiến trúc (Microarchitecture): nghiên cứu thiết kế máy tính ở mức cao, chẳng hạn như hệ thống nhớ, cấu trúc bus, thiết kế bên trong CPU. n Phần cứng (Hardware): nghiên cứu thiết kế logic chi tiết và công nghệ đóng gói của máy tính. May2014 IT6223 13
  4. NKK-HUST Kiến trúc tập lệnh Kiến trúc tập lệnh của máy tính bao gồm: n Tập lệnh: tập hợp các chuỗi số nhị phân mã hoá cho các thao tác mà máy tính có thể thực hiện n Các kiểu dữ liệu: các kiểu dữ liệu mà máy tính có thể xử lý May2014 IT6223 14
  5. NKK-HUST Cấu trúc cơ bản của máy tính CPU Bộ nhớ chính Bus liên kết hệ thống Hệ thống vào-ra May2014 IT6223 15
  6. NKK-HUST Các thành phần cơ bản của máy tính n Bộ xử lý trung tâm (Central Processing Unit): Điều khiển hoạt động của máy tính và xử lý dữ liệu. n Bộ nhớ chính (Main Memory): Chứa các chương trình và dữ liệu đang được sử dụng. n Hệ thống vào-ra (Input/Output System): Trao đổi thông tin giữa máy tính với bên ngoài. n Bus liên kết hệ thống (System Interconnection Bus): Kết nối và vận chuyển thông tin giữa các thành phần với nhau. May2014 IT6223 16
  7. NKK-HUST Mô hình phân lớp của máy tính Người sử dụng Người lập trình Các phần mềm ứng dụng Người thiết kế HĐH Các phần mềm trung gian Hệ điều hành Phần cứng n Phần cứng (Hardware): hệ thống vật lý của máy tính. n Phần mềm (Software): các chương trình và dữ liệu. May2014 IT6223 17
  8. NKK-HUST Bus kết nối trong máy tính n Bus: tập hợp các đường kết nối dùng để vận chuyển thông tin giữa các mô-đun của máy tính với nhau. n Các bus chức năng: n Bus địa chỉ n Bus dữ liệu n Bus điều khiển n Độ rộng bus: là số đường dây của bus có thể truyền các bit thông tin đồng thời (chỉ dùng cho bus địa chỉ và bus dữ liệu) May2014 IT6223 18
  9. NKK-HUST Sơ đồ cấu trúc bus cơ bản Mô-đun Mô-đun Mô-đun Mô-đun CPU nhớ nhớ vào-ra vào-ra bus địa chỉ bus dữ liệu bus điều khiển May2014 IT6223 19
  10. NKK-HUST Bus địa chỉ n Chức năng: vận chuyển địa chỉ để xác định ngăn nhớ hay cổng vào-ra n Độ rộng bus địa chỉ: cho biết số lượng ngăn nhớ tối đa được đánh địa chỉ. n N bit: AN-1, AN-2, A2, A1, A0 è có thể đánh địa chỉ tối đa cho 2N ngăn nhớ (không gian địa chỉ bộ nhớ) n Ví dụ: n Bộ xử lý Pentium có bus địa chỉ 32 bit è có khả năng đánh địa chỉ cho 232 bytes nhớ (4GBytes) (ngăn nhớ tổ chức theo byte) May2014 IT6223 20
  11. NKK-HUST Bus dữ liệu n Chức năng: n vận chuyển lệnh từ bộ nhớ đến CPU n vận chuyển dữ liệu giữa CPU, mô đun nhớ, mô đun vào-ra với nhau n Độ rộng bus dữ liệu: Xác định số bit dữ liệu có thể được trao đổi đồng thời. n M bit: DM-1, DM-2, D2, D1, D0 n M thường là 8, 16, 32, 64,128 bit. n Ví dụ: Các bộ xử lý Pentium có bus dữ liệu 64 bit May2014 IT6223 21
  12. NKK-HUST Bus điều khiển n Chức năng: vận chuyển các tín hiệu điều khiển n Các loại tín hiệu điều khiển: n Các tín hiệu điều khiển đọc/ghi n Các tín hiệu điều khiển ngắt n Các tín hiệu điều khiển bus May2014 IT6223 22
  13. NKK-HUST Phân cấp bus trong máy tính n Tổ chức thành nhiều bus trong hệ thống máy tính n Cho các thành phần khác nhau: n Bus của bộ xử lý n Bus của bộ nhớ chính n Các bus vào-ra n Các bus khác nhau về tốc độ n Bus bộ nhớ chính và các bus vào-ra không phụ thuộc vào bộ xử lý cụ thể. May2014 IT6223 23
  14. NKK-HUST Một số bus điển hình trong máy tính n Bus của bộ xử lý: có tốc độ nhanh nhất n Bus của bộ nhớ chính (nối ghép với các mô-đun RAM) n PCI Express bus (Peripheral Component Interconnect): nối ghép với các thiết bị ngoại vi có tốc độ trao đổi dữ liệu nhanh. n SATA (Serial Advanced Technology Attachment): Bus kết nối với ổ đĩa cứng hoặc ổ đĩa CD/DVD n USB (Universal Serial Bus): Bus nối tiếp đa năng May2014 IT6223 24
  15. NKK-HUST Sự tiến hóa của máy tính Các thế hệ máy tính n Thế hệ thứ nhất: Máy tính dùng đèn điện tử chân không (1950s) n Thế hệ thứ hai: Máy tính dùng transistor (1960s) n Thế hệ thứ ba: Máy tính dùng vi mạch SSI, MSI và LSI (1970s) n Thế hệ thứ tư: Máy tính dùng vi mạch VLSI (1980s) n Thế hệ thứ năm: Máy tính dùng vi mạch ULSI, SoC (1990s-nay) May2014 IT6223 25
  16. NKK-HUST Vi mạch n Vi mạch hay là mạch tích hợp (Integrated Circuit - IC): mạch điện tử gồm nhiều transistors và các linh kiện khác được tích hợp trên một chip bán dẫn. n Phân loại vi mạch theo qui mô tích hợp: n SSI - Small Scale Integration n MSI - Medium Scale Integration n LSI - Large Scale Integration n VLSI - Very Large Scale Integration n ULSI - Ultra Large Scale Integration May2014 IT6223 26
  17. NKK-HUST Một số vi mạch số điển hình n Bộ vi xử lý (Microprocessors): CPU được chế tạo trên một chip. n Vi mạch điều khiển tổng hợp (Chipset): một hoặc một vài vi mạch thực hiện được nhiều chức năng điều khiển và nối ghép. n Bộ nhớ bán dẫn (Semiconductor Memory): ROM, RAM, Flash n Hệ thống trên chip (SoC – System on Chip) n Các bộ vi điều khiển (Microcontrollers) May2014 IT6223 27
  18. NKK-HUST Sự phát triển của vi xử lý n 1971: bộ vi xử lý 4-bit Intel 4004 n 1972: các bộ xử lý 8-bit n 1978: các bộ xử lý 16-bit n 1985: các bộ xử lý 32-bit n 2001: các bộ xử lý 64-bit n 2006: các bộ xử lý đa lõi (multicores) May2014 IT6223 28
  19. NKK-HUST Hiệu năng máy tính n Định nghĩa hiệu năng P(Performance): P = 1/ t trong đó: t là thời gian thực hiện n “Máy tính A nhanh hơn máy B n lần” PA / PB = tB / tA = n May2014 IT6223 29
  20. NKK-HUST Xung nhịp của CPU n Hoạt động của CPU được điều khiển bởi xung nhịp có tần số xác định T0 n Chu kỳ xung nhịp T0(Clock period): thời gian của một chu kỳ n Tần số xung nhịp f0 (Clock rate): số chu kỳ trong 1 giây. n f0 = 1/T0 9 n VD: Bộ xử lý có f0 = 4GHz = 4000MHz = 4×10 Hz 9 –9 T0 = 1/(4x10 ) = 0.25x10 s = 0.25ns May2014 IT6223 30
  21. NKK-HUST Thời gian CPU (tCPU) n tCPU = n ×T0 = f0 n trong đó: n là số chu kỳ xung nhịp n Hiệu năng được tăng lên bằng cách: n Giảm số chu kỳ xung nhịp n n Tăng tần số xung nhịp f0 May2014 IT6223 31
  22. NKK-HUST Ví dụ n Máy tính A: n Tần số xung nhịp: fA= 2GHz n Thời gian của CPU: tA = 10s n Máy tính B n Thời gian của CPU: tB = 6s n Số chu kỳ xung nhịp của B = 1.2 x Số chu kỳ xung nhịp của A n Xác định tần số xung nhịp của máy B (fB)? n Giải: nB 1.2× nA f B = = tB 6s 9 nA = t A × f A =10s× 2GHz = 20 ×10 1.2× 20 ×10 9 24 ×10 9 f = = = 4GHz B 6s 6s May2014 IT6223 32
  23. NKK-HUST Số lệnh và số chu kỳ trên một lệnh n Số chu kỳ = Số lệnh x Số chu kỳ trên một lệnh n = IC ×CPI n - số chu kỳ, IC - số lệnh (Instruction Count), CPI - số chu kỳ trên một lệnh (Cycles per Instruction) n Thời gian thực hiện của CPU: IC×CPI tCPU = IC×CPI ×T0 = f0 n Trong trường hợp các lệnh khác nhau có CPI khác nhau, cần tính CPI trung bình May2014 IT6223 33
  24. NKK-HUST Ví dụ n Máy tính A: TA = 250ps, CPIA = 2.0 n Máy tính B: TB = 500ps, CPIB = 1.2 n Cùng kiến trúc tập lệnh (ISA) n Máy nào nhanh hơn và nhanh hơn bao nhiêu ? t = IC ×CPI × T A A A = IC × 2.0 × 250ps = IC ×500ps t IC CPI T B = × B × B = IC ×1.2×500ps = IC × 600ps t IC × 600ps B = = 1.2 Vậy: t IC 500ps A nhanh hơn B 1.2 lần A × May2014 IT6223 34
  25. NKK-HUST Chi tiết hơn về CPI n Nếu loại lệnh khác nhau có số chu kỳ khác nhau, ta có tổng số chu kỳ: K n (CPI IC ) = ∑ i × i i=1 n CPI trung bình: n K IC CPI ⎛CPI i ⎞ TB = = ∑⎜ i × ⎟ IC i=1 ⎝ IC ⎠ May2014 IT6223 35
  26. NKK-HUST Ví dụ n Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh thuộc các loại A, B, C. Tính CPI trung bình? Loại lệnh A B C CPI theo loại lệnh 1 2 3 IC trong dãy lệnh 1 2 1 2 IC trong dãy lệnh 2 4 1 1 n Dãy lệnh 1: IC = 5 n Dãy lệnh 2: IC = 6 n Số chu kỳ n Số chu kỳ = 2×1 + 1×2 + 2×3 = 4×1 + 1×2 + 1×3 = 10 = 9 n CPITB = 10/5 = 2.0 n CPITB = 9/6 = 1.5 May2014 IT6223 36
  27. NKK-HUST Tóm tắt về Hiệu năng Instructions Clock cycles Seconds CPU Time = × × Program Instruction Clock cycle IC×CPI tCPU = IC×CPI ×T0 = f0 n Hiệu năng phụ thuộc vào: n Thuật toán n Ngôn ngữ lập trình n Chương trình dịch n Kiến trúc tập lệnh May2014 IT6223 37
  28. NKK-HUST MIPS như là thước đo hiệu năng n MIPS: Millions of Instructions Per Second (Số triệu lệnh trên 1 giây) Instruction count Instruction count Clock rate MIPS = 6 = = 6 Execution time 10 Instruction count ×CPI 6 CPI 10 × ×10 × Clock rate f f MIPS = 0 CPI = 0 CPI×106 MIPS×106 May2014 IT6223 38
  29. NKK-HUST Ví dụ Tính MIPS của bộ xử lý với: clock rate = 2GHz và CPI = 4 0.5ns 2ns 1 chu kỳ = 1/(2x109) = 0,5ns CPI = 4 à thời gian thực hiện 1 lệnh: 4 x 0,5ns = 2ns Vậy bộ xử lý thực hiện được 500 MIPS May2014 IT6223 39
  30. NKK-HUST Ví dụ Tính CPI của bộ xử lý với: clock rate = 1GHz và 400 MIPS? 1ns 4x108 lệnh thực hiện trong 1s 8 à 1 lệnh thực hiện trong 1/(4x10 )s = 2,5ns à CPI = 2,5 May2014 IT6223 40
  31. NKK-HUST MFLOPS Millions of Floating Point Operations per Second (Số triệu phép toán số dấu phẩy động trên một giây) Executed floating point operations MFLOPS = Execution time×106 GFLOPS(109 ) TFLOPS(1012) May2014 IT6223 41
  32. NKK-HUST 1.3. Hệ nhúng (Embedded System) n Sự kết hợp giữa phần cứng máy tính, phần mềm, cơ cấu cơ khí và các thành phần khác để thực hiện một chức năng chuyên biệt. n Một ứng dụng chứa ít nhất một máy tính lập trình được (thường là vi điều khiển, vi xử lý, ) mà người sử dụng nhìn chung thường không nhận thức được đó là một hệ thống dựa trên máy tính n Máy tính công nghiệp thuộc loại hệ nhúng May2014 IT6223 42
  33. NKK-HUST Hệ nhúng May2014 IT6223 43
  34. NKK-HUST Đặc trưng của hệ nhúng (1) Mục đích chuyên dụng: n Thông thường, hệ nhúng được thiết kế để thực hiện một chương trình nào đó, lặp đi lặp lại n Thực hiện nhiều chức năng nhưng cùng một mục đích (2) Ràng buộc chặt chẽ bởi các yếu tố: n Chi phí n Hệ thống đơn giản n Dựa trên ít thành phần n Tốc độ xử lý n Năng lượng tiêu thụ (3) Giới hạn về tài nguyên: n Hiệu năng bộ vi xử lý n Dung lượng bộ nhớ May2014 IT6223 44
  35. NKK-HUST Đặc trưng của hệ nhúng (4) Tính tương tác và đáp ứng sự kiện thời gian thực: n Thường xuyên tương tác với các sự kiện bên ngoài (reactive) n Xử lý tính toán đáp ứng thời gian thực (real time) (5) Thỏa mãn yêu cầu về: n Độ tin cậy n Khả năng chịu lỗi (6) Phần cứng và phần mềm song hành: n Phần mềm thường cài đặt cố định lên bộ nhớ trong hệ nhúng (firmware) n Thường lưu trữ trong bộ nhớ EEPROM hoặc bộ nhớ Flash May2014 IT6223 45
  36. NKK-HUST Kiến trúc tổng quan hệ nhúng n Sơ đồ phân lớp: May2014 IT6223 46
  37. NKK-HUST Kiến trúc tổng quan hệ nhúng May2014 IT6223 47
  38. NKK-HUST Quá trình cơ khí hóa và xử lý thông tin May2014 IT6223 48 FIGURE 2.2 Mechanical process and information processing develop towards mechatronic systems. The energy flow is generally a product of a generalized flow and a potential (effort). Information on the state of the mechanical process can be obtained by measured generalized flows (speed, volume, or mass flow) or electrical current or potentials (force, pressure, temperature, or voltage). Together with reference variables, the measured variables are the inputs for an information flow through the digital electronics resulting in manipulated variables for the actuators or in monitored variables on a display. The addition and integration of feedback information flow to a feedforward energy flow in a basically mechanical system is one characteristic of many mechatronic systems. This development presently influ- ences the design of mechanical systems. Mechatronic systems can be subdivided into: • mechatronic systems • mechatronic machines • mechatronic vehicles • precision mechatronics •micro mechatronics This shows that the integration with electronics comprises many classes of technical systems. In several cases, the mechanical part of the process is coupled with an electrical, thermal, thermodynamic, chemical, or information processing part. This holds especially true for energy converters as machines where, in addition to the mechanical energy, other kinds of energy appear. Therefore, mechatronic systems in a wider sense comprise mechanical and also non-mechanical processes. However, the mechanical part normally dominates the system. Because an auxiliary energy is required to change the fixed properties of formerly passive mechanical systems by feedforward or feedback control, these systems are sometimes also called active mechanical systems. 2.2 Functions of Mechatronic Systems Mechatronic systems permit many improved and new functions. This will be discussed by considering some examples. Division of Functions between Mechanics and Electronics For designing mechatronic systems, the interplay for the realization of functions in the mechanical and electronic part is crucial. Compared to pure mechanical realizations, the use of amplifiers and actuators with electrical auxiliary energy led to considerable simplifications in devices, as can be seen from watches, ©2002 CRC Press LLC
  39. NKK-HUST Chương 2 CƠ BẢN VỀ LOGIC SỐ Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội May2014 IT6223 49
  40. NKK-HUST Nội dung 2.1. Số học máy tính 2.2. Đại số Boole và các cổng logic 2.3. Mạch logic May2014 IT6223 50
  41. NKK-HUST 2.1. Số học máy tính n Hệ thập phân (Decimal System) à con người sử dụng n Hệ nhị phân (Binary System) à máy tính sử dụng n Hệ mười sáu (Hexadecimal System) à dùng để viết gọn cho số nhị phân May2014 IT6223 51
  42. NKK-HUST Biểu diễn số nguyên không dấu n Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên không dấu A: an−1an−2 a2a1a0 Giá trị của A được tính như sau: n−1 A a 2i = ∑ i i=0 Dải biểu diễn của A: từ 0 đến 2n – 1 May2014 IT6223 52
  43. NKK-HUST Với n = 8 bit Biểu diễn được các giá trị từ 0 đến 255 0000 0000 = 0 Chú ý: 0000 0001 = 1 1111 1111 0000 0010 = 2 + 0000 0001 0000 0011 = 3 1 0000 0000 Vậy: 255 + 1 = 0 ? 1111 1111 = 255 à do tràn nhớ ra ngoài May2014 IT6223 53
  44. NKK-HUST Trục số học với n = 8 bit Trục số học: 0 1 2 3 255 Trục số học máy tính: 255 0 1 254 2 3 May2014 IT6223 54
  45. NKK-HUST Với n = 16 bit, 32 bit, 64 bit 16 n n= 16 bit: dải biểu diễn từ 0 đến 65535 (2 – 1) n 0000 0000 0000 0000 = 0 n n 0000 0000 1111 1111 = 255 n 0000 0001 0000 0000 = 256 n n 1111 1111 1111 1111 = 65535 32 n n= 32 bit: dải biểu diễn từ 0 đến 2 - 1 64 n n= 64 bit: dải biểu diễn từ 0 đến 2 - 1 May2014 IT6223 55
  46. NKK-HUST Số bù một và Số bù hai n Định nghĩa: Cho một số nhị phân A được biểu diễn bằng n bit, ta có: n n Số bù một của A = (2 -1) – A n n Số bù hai của A = 2 – A n Số bù hai của A = (Số bù một của A) +1 May2014 IT6223 56
  47. NKK-HUST Số bù một và Số bù hai (tiếp) Ví dụ: với n = 8 bit, cho A = 0010 0101 n Số bù một của A được tính như sau: 1111 1111 (28-1) - 0010 0101 (A) 1101 1010 à đảo các bit của A n Số bù hai của A được tính như sau: 1 0000 0000 (28) - 0010 0101 (A) 1101 1011 à thực hiện khó khăn May2014 IT6223 57
  48. NKK-HUST Quy tắc tìm Số bù một và Số bù hai n Số bù một của A = đảo giá trị các bit của A n (Số bù hai của A) = (Số bù một của A) + 1 n Ví dụ: n Cho A = 0010 0101 n Số bù một = 1101 1010 + 1 n Số bù hai = 1101 1011 n Nhận xét: A = 0010 0101 Số bù hai = + 1101 1011 1 0000 0000 = 0 (bỏ qua bit nhớ ra ngoài) à Số bù hai của A = -A May2014 IT6223 58
  49. NKK-HUST Biểu diễn số nguyên có dấu bằng mã bù hai Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên có dấu A: an−1an−2 a2a1a0 n Với A là số dương: bit an-1 = 0, các bit còn lại biểu diễn độ lớn như số không dấu n Với A là số âm: được biểu diễn bằng số bù hai của số dương tương ứng, vì vậy bit an-1 = 1 May2014 IT6223 59
  50. NKK-HUST Biểu diễn tổng quát cho số nguyên có dấu n Dạng tổng quát của số nguyên A: an−1an−2 a2a1a0 n Giá trị của A được xác định như sau: n−2 A a 2n−1 a 2i = − n−1 + ∑ i i=0 n-1 n-1 n Dải biểu diễn: từ -(2 ) đến +(2 -1) May2014 IT6223 60
  51. NKK-HUST Các ví dụ n Ví dụ 1. Biểu diễn các số nguyên có dấu sau đây bằng 8-bit theo mã bù hai: A = +58 ; B = -80 Giải: A = +58 = 0011 1010 B = -80 Ta có: + 80 = 0101 0000 Số bù một = 1010 1111 + 1 Số bù hai = 1011 0000 Vậy: B = -80 = 1011 0000 May2014 IT6223 61
  52. NKK-HUST Các ví dụ n Ví dụ 2. Hãy xác định giá trị của các số nguyên có dấu được biểu diễn dưới đây: n P = 0110 0010 n Q = 1101 1011 Giải: n P = 0110 0010 = 64+32+2 = +98 n Q = 1101 1011 = -128+64+16+8+2+1 = -37 May2014 IT6223 62
  53. NKK-HUST Với n = 8 bit Biểu diễn được các giá trị từ -128 đến +127 0000 0000 = 0 0000 0001 = +1 0000 0010 = +2 Chú ý: 0000 0011 = +3 +127 + 1 = -128 (-128)+(-1) = +127 0111 1111 = +127 à do tràn xảy ra 1000 0000 = - 128 1000 0001 = - 127 1111 1110 = -2 1111 1111 = -1 May2014 IT6223 63
  54. NKK-HUST Trục số học số nguyên có dấu với n = 8 bit n Trục số học: -128 -2 -1 0 1 2 +127 n Trục số học máy tính: -1 0 +1 -2 +2 -3 +3 -128 +127 May2014 IT6223 64
  55. NKK-HUST Với n = 16 bit, 32 bit, 64 bit n Với n=16bit: biểu diễn từ -32768 đến +32767 n 0000 0000 0000 0000 = 0 n 0000 0000 0000 0001 = +1 n n 0111 1111 1111 1111 = +32767 n 1000 0000 0000 0000 = -32768 n n 1111 1111 1111 1111 = -1 31 31 n Với n=32bit: biểu diễn từ -2 đến 2 -1 63 63 n Với n=64bit: biểu diễn từ -2 đến 2 -1 May2014 IT6223 65
  56. NKK-HUST Cộng số nguyên không dấu Khi cộng hai số nguyên không dấu n-bit, kết quả nhận được là n-bit: n Nếu Cout=0 à nhận được kết quả đúng. n Nếu Cout=1 à nhận được kết quả sai, do tràn nhớ ra ngoài (Carry Out). n n Tràn nhớ ra ngoài khi: tổng > (2 – 1) May2014 IT6223 66
  57. NKK-HUST Ví dụ cộng số nguyên không dấu n 57 = 0011 1001 + 34 = + 0010 0010 91 0101 1011 = 64+16+8+2+1=91 à đúng n 209 = 1101 0001 + 73 = + 0100 1001 282 1 0001 1010 0001 1010 = 16+8+2=26 à sai à có tràn nhớ ra ngoài (Cout=1) Để có kết quả đúng ta thực hiện cộng theo 16-bit: 209 = 0000 0000 1101 0001 + 73 = + 0000 0000 0100 1001 0000 0001 0001 1010 = 256+16+8+2 = 282 May2014 IT6223 67
  58. NKK-HUST Phép đảo dấu n Ta có: + 37 = 0010 0101 bù một = 1101 1010 + 1 bù hai = 1101 1011 = -37 n Lấy bù hai của số âm: - 37 = 1101 1011 bù một = 0010 0100 + 1 bù hai = 0010 0101 = +37 n Kết luận: Phép đảo dấu số nguyên trong máy tính thực chất là lấy bù hai May2014 IT6223 68
  59. NKK-HUST Cộng số nguyên có dấu Khi cộng hai số nguyên có dấu n-bit, kết quả nhận . được là n-bit và không cần quan tâm đến bit Cout n Cộng hai số khác dấu: kết quả luôn luôn đúng. n Cộng hai số cùng dấu: n nếu dấu kết quả cùng dấu với các số hạng thì kết quả là đúng. n nếu kết quả có dấu ngược lại, khi đó có tràn xảy ra (Overflow) và kết quả bị sai. n Tràn xảy ra khi tổng nằm ngoài dải biểu diễn: [ -(2n-1),+(2n-1-1)] May2014 IT6223 69