Quá trình phát triển và một số nét đặc trưng của các thế hệ máy tính ¨ Định luật Moore ¨ Một số thành phần cơ bản của máy tính cá nhân ngày nay ¨ Giải thích các khái niệm wafer, chip, chipset ¨ Mô hình abstraction layers
1 HỆ THỐNG MÁY TÍNH 03 – Biểu diễn số thc t ă Biu din s 123.37510 sang h nh phõn? ă í tng n gin: Biu din phn nguyờn v phn thp phõn riờng l Ô Với phần nguyên: Dùng bit ([010, 25510]) 12310 = 64 + 32 + 16 + + + = 0111 10112 Ô Vi phn thp phõn: Tng tự dùng bit 0.375 = 0.25 + 0.125 = 2-2 + 2-3 = 0110 00002 123.37510 = 0111 1011.0110 00002 ă Tng quỏt cụng thc khai trin ca số thập phân hệ nhị phân: xn -1 xn - x0 x-1 x- x- m = xn -1.2 n -1 + xn - 2 n - + x0 20 + x-1.2 -1 + x- 2 -2 + + x- m - m t ă Tuy nhiờnvi bit: Ô Phn nguyờn ln nht cú th biu din: 255 Ô Phn thp phõn nh nht cú th biu diễn: 2-8 ~ 10-3 = 0.001 Biểu diễn số nhỏ 0.0001 (10-4) hay 0.000001 (10-5)? Một giải phỏp: Tng s bit phn thp phõn Ô Vi 16 bit cho phần thập phân: = 2-16 ~ 10-5 Ô Cú v khụng hiu quCỏch tt hn ? Floating Point Number (Số thực dấu chấm động) Floating Point Number ? ă Gi s ta cú s ( dạng nhị phân) X = 0.00000000000000112 = (2-15 + 2-16)10 14 số X = 0.112 * (2-14)10 (= (2-1 + 2-2).2-14 = 2-15 + 2-16) Thay dùng 16 bit để lưu trữ phần thập phân, ta cần bit: X = 0.11 1110 Cách làm: Di chuyển vị trí dấu chấm sang phải 14 vị trí, dùng bit để lưu trữ số 14 Đây ý tưởng số thực dấu chấm động (floating point number) Chuẩn húa s thp phõn ă Trc cỏc s biểu diễn dạng số chấm động, chúng cần c chun húa v dng: 1.F * 2E ă Ô F: Phần thập phân không dấu (định trị - Significant) ¤ E: Phần số mũ (Exponent) Ví dụ: ¤ +0.0937510 = 0.000112 = +1.1 * 2-4 Ô -5.2510 = 101.012 = -1.0101 * 22 Biểu diễn số chấm động ¨ Có nhiều chuẩn chuẩn IEEE 754 dùng nhiều để lưu trữ số thập phân theo dấu chấm động máy tính, gồm dạng: (slide sau) Biu din s chm ng ă S chấm động xác đơn (32 bits): Sign Exponent (biased) bit ă Significand bits 23 bits S chm động xác kép (64 bits): Sign Exponent (biased) bit Significand 11 bits 52 bits ă Sign: Bit du (1: S õm, 0: S dng) ă Exponent: S m (Biu din di dng s quỏ K (Biased) vi ă ¤ Chính xác đơn: K = 127 (2n-1 - = 28-1 - 1) với n số bit lưu tr Exponent Ô Chớnh xỏc kộp: K = 1023 (2n-1 - = 211-1 - 1) Significand (Fraction): Phần định tr (phn l sau du chm) Vớ d ă Biểu diễn số thực sau theo dạng số chấm động chớnh xỏc n (32 bit): X = -5.25 ă Bc 1: Đổi X sang hệ nhị phân X = -5.2510 = -101.012 ă Bc 2: Chun húa theo dng 1.F * 2E X = -5.25 = -101.01 = -1.0101 * 22 ă Bc 3: Biu din Floating Point Ô S õm: bit du Sign = Ô S m E = Phần mũ exponent với số thừa K=127 biểu diễn: Exponent = E + 127 = + 127 = 12910 = 1000 00012 Ô Phn định trị = 0101 0000 0000 0000 0000 000 (Thêm 19 số cho đủ 23 bit) Kết nhận được: 1000 0001 0101 0000 0000 0000 0000 000 Tho lun v exponent ă Vỡ phn số mũ exponent không giữ nguyên lại phải lưu trữ di dng s quỏ K (Dng biased)? ă Gi s số chấm động xác đơn (32 bits), ta dùng bits để lưu giá trị exponent (biểu diễn dạng số K), miền giá trị [0, 255] Với K = 127, số mũ gốc ban đầu có miền giá trị [-127, 128] Miền giá trị vô lý, không chọn số K = 128 để miền giá trị gốc [-128, 127] bình thường? Cõu hi - ỏp ỏn 10 ă S d Exponent lưu trữ dạng Biased ta muốn chuyển từ miền giá trị số có dấu sang số khơng dấu (vì biased, số k chọn để sau cộng số miền giá trị gốc, kết số dương) Dễ dàng so sánh, tính tốn Câu hỏi - Đáp án 11 ă S K c chn l 127 m khụng phải 128 bước trước biểu diễn thành số chấm động, cần phải chuẩn húa thnh dng 1.F * 2E ă Tc l chỳng ta luôn để dành bit (số 1) phía trước dấu chấm khơng đẩy sang trái hết Với bit, số mũ gốc ban đầu đạt mức nhỏ -128 mà -127 Do ta cần chọn K = 127 l c Vy thỡ 12 ă Khi mun biu diễn số ta khơng thể tìm bit trái có giá trị = để đẩy dấu chấm động, chuẩn hóa dạng ±1.F * 2E ? ă Vi s dng 0.F * 2-127 thỡ chun húa c na khụng? ă Vi K = 127, exponent lớn 255 Số mũ gốc ban đầu lớn 255 – 127 = +128 Vơ lý với bit có dấu ta biểu diễn số +128 ? Trả li 13 ă Vỡ ú l nhng s thc c biệt, ta biểu diễn dấu chấm động J S thc c bit 14 ă S (zero) Ô ă S khụng th chun húa (denormalized) Ô ă Exponent = 0, Significand != Số vô (infinity) Ô ă Exponent = 0, Significand = Exponent = 111…1 (toàn bit 1), Significand = Số báo lỗi (NaN Not a Number) Ô Exponent = 1111 (ton bit 1), Significand != Normalized number 15 ă ă ¨ Largest positive normalized number: +1.[23 số 1] * 2127 S Exp Significand (Fraction) - - 1111 1110 1111 1111 1111 1111 1111 111 Smallest positive normalized number: +1.[23 số 0] * 2-126 S Exp Significand (Fraction) - - 0000 0001 0000 0000 0000 0000 0000 000 Tương tự cho số negative (số âm) Denormalized number 16 ă Largest positive denormalized number: +0.[23 s 1] * 2-127 S Exp Significand (Fraction) -0 0000 0000 1111 1111 1111 1111 1111 111 Tuy nhiên IEEE 754 quy định +0.[23 số 1] * 2-126 muốn tiến gần với “Smallest positive normalized number = +1.[23 s 0] * 2-126 ă Smallest positive denormalized number: +1.[22 số 0]1 * 2-127 S Exp Significand (Fraction) -0 0000 0000 0000 0000 0000 0000 0000 001 Tuy nhiên IEEE 754 quy định +0.[22 s 0]1 * 2-126 ă Tng t cho s negative (số âm) Ví dụ: n = 4, m = 3, bias = 17 Phân bố số thực (32 bits) 18 Chuẩn IEEE 754 19 Bài tập 20 ă Biu din s thc sau theo dng s chấm động xác đơn (32 bit): X = +12.625 ¨ Bước 1: Đổi X sang hệ nhị phân X = -12.62510 = -1100.1012 ă Bc 2: Chun húa theo dạng ±1.F * 2E X = -12.62510 = -1100.1012 = -1.100101 * 23 ă Bc 3: Biu din Floating Point ¤ Số dương: bit dấu Sign = ¤ Số mũ E = Phần mũ exponent với số thừa K=127 biểu diễn: Exponent = E + 127 = + 127 = 13010 = 1000 00102 ¤ Phần định trị = 1001 0100 0000 0000 0000 000 (Thêm 17 số cho đủ 23 bit) Kết nhận được: 1000 0010 1001 0100 0000 0000 0000 000