bài 2

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Phạm Quang Lộc (trang riêng)
Ngày gửi: 11h:56' 03-06-2011
Dung lượng: 1.8 MB
Số lượt tải: 2
Nguồn:
Người gửi: Phạm Quang Lộc (trang riêng)
Ngày gửi: 11h:56' 03-06-2011
Dung lượng: 1.8 MB
Số lượt tải: 2
Số lượt thích:
0 người
1
GIỚI THIỆU KHOA HỌC MÁY TÍNH
NGUYỄN THANH TRUNG
2
Chương1 – GIỚI THIỆU TỔNG QUAN
1.1. Sơ lược về máy tính và ngành KHMT
1.2. Biểu diễn thông tin trong máy tính
1.3. Các cổng logic cơ bản
3
Máy tính (Computer) là một thiết bị điện tử dùng để lưu trữ và xử lý thông tin theo các chương trình định trước.
Máy tính, máy tính tương tự (Analog), máy tính số (Digital)… Sơ lược về lịch sử và phân loại máy tính
1.1. Sơ lược về máy tính
4
1.1.1.LỊCH SỬ PHÁT TRIỂN
5
Các thế hệ máy tính …
+, -, X, :
6
*Thế hệ thứ nhất (1945-1955) máy tính dùng đèn điện tử: Trong những năm 40- 50 các thiết bị đầu tiên của máy tính điện tử được xây dựng và phát triển với.
+ Phần cứng: Chủ yếu là dùng đèn điện tử, độ tin cậy thấp, tốc độ chậm tiêu hao năng lượng rất lớn.
Ví dụ: Chiếc máy tính điện tử đầu tiên là chiếc ENIAC(Electronic Numberical Intergrator And Calculator) do John Mauchley và J.Presper Eckert thiết kế. Nó bao gồm 18.000 đèn điện tử, 1.500 rơle, nặng 30 tấn tiêu thụ 140 KW điện. Dùng hệ thập phân
+ Phần mềm: Chủ yếu dùng ngôn ngữ máy và đặt công tắc bật tắt trực tiếp.
Ví dụ: Với chiếc ENIAC người ta phải đặt 6000 switch.
7
Máy tính ENIAC
8
Máy IAS (Institude of Advanced Study)
Do Von Neumann thiết kế, gồm các thành phần cơ bản sau (1947-1952)
Máy tính hệ 2 đầu tiên
9
John von Neumann và IAS
10
*Thế hệ thứ hai (1955-1965) máy tính dúng thiết bị bán dẫn:
+ Phần cứng: Dùng linh kiện mới là Transitor (được phòng thí nghiệm Bell phát triển năm 1948). Bộ nhớ máy tính được tăng lên đáng kể và trở nên nhỏ gọn hơn. Chiếc máy đầu tiên của thế hệ này là chiếc TX-0.
+ Phần mềm: Đã bắt đầu sử dụng các ngôn ngữ lập trình bậc cao như Cobol, PL1,…
11
Các máy tính tiêu biểu
12
*Thế hệ thứ ba (1965-1980) dùng mạch hợp tích hợp IC:
+Phần cứng: Công nghệ điện tử giờ đã phát triển rất nhanh cho phép đặt hàng chục Transitor vào một vỏ chung gọi là con chip. Linh kiện chủ yếu là các mạch tích hợp IC, đã bắt đầu xuất hiện đĩa từ để lưu trữ dữ liệu. Cho phép tốc độ tính toán đạt vài triệu phép tính/giây, có dung lượng bộ nhớ trong lên tới nhiều Mega bytes (MB).
+Phần mềm: Đã xuất hiện các hệ điều hành thế hệ đầu tiên. Các phần mềm ứng dụng ngày càng phát triển.
13
*Thế hệ thứ tư (1980-199x) sử dụng công nghệ (VLSI):
+ Phần cứng: Vào những năm 80 công nghệ (VLSI -Very Large Scale Integrator) ra đời cho phép tích hợp trong một con chip hàng triệu Transitor khiến cho máy tính trở nên nhỏ hơn, nhanh hơn với tốc độ hàng triệu phép tính một giây là nền tảng cho chiếc máy tính PC (Personal Computer) ngày nay.
+ Phần mềm: Cùng với sự phát triển của máy tính các phần mềm ứng dụng đã phát triển như vũ bão làm cho tin học len lỏi vào mọi ứng dụng trong cuộc sống.
14
Thế hệ thứ 5: Người máy ?
Hiện nay đang được nghiên cứu và phát triển dưới dạng các máy tính thông minh, robot,...
Ví dụ: Deep Blue, Asimo,…
15
+ Máy tính cá nhân (Personal Computer): Là máy tính để bàn, chỉ có một chíp xử lý và thường dùng cho một người.
+ Máy tính Mini (Minicomputer): Thường được dùng trong các lĩnh vực ứng dụng thời gian thực và cho các ứng dụng vừa và nhỏ trong các dây chuyền sản xuất hay trong hàng không.
+ Máy tính lớn (Main Frame): Thường dùng trong các trung tâm tính toán đòi hỏi phải tốc độ xử lý tốt.
+ Siêu máy tính (Super Computer): Là một hệ thống gồm nhiều máy lớn ghép song song có tốc độ tính toán cực kỳ lớn và thường dùng trong các lĩnh vực đặc biệt, chủ yếu trong quân sự và vũ trụ. Siêu máy tính Deep Blue là một trong những chiếc thuộc loại này.
1.1.2.Các loại máy tính
16
Thông tin: là một khái niệm trừu tượng mô tả tất cả những gì đem lại hiểu biết, nhận thức của con người và các sinh vật sống khác.
Dữ liệu
Dữ liệu (dữ kiện) có thể hiểu nôm na là vật liệu thô mang thông tin.
Dữ liệu được tập hợp lại và được xử lí sẽ cho ta thông tin.
=> Dữ liệu là nguồn gốc, là vật mang thông tin, là vật liệu sản xuất ra thông tin.
1.1.3.CÁC KHÁI NIỆM CƠ BẢN
17
Dữ liệu trong thực tế có thể là
Tín hiệu vật lí (Physical signal)
Các số liệu (number)
Kí hiệu (symbol)
Thí dụ 1: Nhiệt độ cháu bé 39oC ...
Thí dụ 2: 28, 27, 30, 32, 27 ... ?
Thí dụ 3: Tính qui ước biểu diễn thông tin
I là chữ cái i hay là số I La mã ?
18
Xử lí thông tin
lọc lấy thông tin cần thiết
truyền tin: nhanh, chính xác ...
lọc nhiễu
lưu trữ
tìm kiếm, lấy ra
sao chép
mã hoá bảo mật
...
19
Xử lí thông tin bằng máy tính
Khi thông tin ít, có thể làm thủ công.
Khi thông tin nhiều lên, đòi hỏi máy móc tự động làm thay, đặc biệt là máy tính điện tử.
Ưu điểm của máy tính: Làm nhanh, không biết chán, chính xác ...
20
Phần cứng (Hardware)
Phần mềm (Software)
Chương trình, lập trình
…
21
Làm thế nào để biểu diễn thông tin trong máy tính ?
Ta phải dùng mã nhị phân !
Mã nhị phân là gì ?
00111010 bit (Binary Digit)
Làm cách nào ?
1.2. Biểu diễn thông tin trong máy tính
22
Các dạng Thông tin
Thông tin
Mã hóa
Tổ hợp bit
Âm thanh
Hình ảnh
Nhiệt độ
Chữ
Số
Ánh sáng
Áp suất
Độ ẩm
Điện áp
Dòng điện
Xử lý
23
Mã hóa thông tin ?
Thông tin để máy tính xử lí được thì cần phải biến đổi thành một dãy bit. Cách biến đổi như vậy gọi là mã hoá thông tin. Biến đổi ngược lại ?
Người ta sử dụng mã ASCII để mã hoá kí tự. Bảng mã ASCII gồm 256 kí tự
Ví dụ: Kí tự “A” có mã ASCII thập phân là 65 và mã ASCII nhị phân là 01000001.
Để chuyển tín hiệu âm thanh máy tính cần có bộ chuyển đổi: Card âm thanh …
…
24
Đơn vị đo thông tin
Đơn vị cơ bản để đo thông tin được gọi là bit.
1 bit có 2 trạng thái : 0/1
Dãy số 0101… gọi là số nhị phân - số hệ 2
Dãy 8 bit = 1 byte.
Ngoài ra ta có các đơn vị lớn hơn để đo thông tin.
25
Các bội số của Byte
p. 350
26
Biểu diễn các dạng thông tin cơ bản trong máy tính
Dạng Số
Dạng văn bản: Dạng quen thuộc gồm các chữ cái, chữ số
Dạng hình ảnh: Bức tranh, bản đồ, băng hình
Dạng âm thanh:Tiếng nói con người, tiếng sóng, bản nhạc..
Nhiệt độ…
27
1.2.1. Biểu diễn số
Hệ đếm: Tập các ký hiệu, quy tắc dùng để biểu diễn , tính toán các giá trị. Gồm:
Hệ đếm không theo vị trí: Số La mã
Hệ đếm theo vị trí: Hệ thập phân, nhị phân, Hexa, ...
Ví dụ: 2356 = 2 x 103 + 3 x 102 + 5 x 101 + 6 x 100
Một số X bất kỳ có thể biểu diễn như sau:
X = xn-1an-1 + xn-2an-2 + xn-3an-3 + ... + x0a0 +
x-1a-1 + x-2a-2 + ... (1)
Trong đó : a gọi là cơ số
28
Hệ thập phân – Decimal (cơ số 10 ): Dùng tập số {0,1, .. ,9}
Ví dụ: 123d; 25,4 ; 580, ...
Nhị phân – Binary (cơ số 2): Dùng tập số {0,1},
Ví dụ: 10001110b; 11000010b
Hệ bát phân (cơ số 8): Dùng tập số {0,1,..7}
Thập lục phân - HexaDecimal (cơ số 16): Dùng tập số {0,1,..9,A,B,C,D,E,F}, ...
Ví dụ: AC0Dh, 123h,..
Một số hệ đếm theo vị trí thông dụng:
29
30
Chuyển đổi giữa các hệ đếm
Thập phân (nguyên) nhị phân: Chia liên tiếp cho 2, đến khi kết quả bằng 0. Đảo ngược trật tự các số dư số nhị phân tương ứng.
Vd: 12d = 1100b
Thập phân Hexa: tương tự ta chia liên tiếp cho 16 ...
Nhị phân Thập phân : Dùng công thức (1)
Hexa thập phân : Dùng công thức (1).
31
Chuyển đổi giữa các hệ đếm (tt)
Nhị phân Hexa: Nhóm 4 bit (Nibble) của số nhị phân tương ứng 1 số Hexa (Nhóm từ phải sang).
Ví dụ: 100 1100 0110 1010b = 4C6Ah
Hexa nhị phân: Cứ 1 số Hexa tương ứng 4 số nhị phân.
Ví dụ: 1ADFh= 0001 1010 1101 1111b
32
Chuyển đổi giữa các hệ đếm (tt)
Trường hợp thập phân không nguyên nhị phân thì :
phần nguyên : Chia liên tiếp cho 2, đến khi kết quả bằng 0. Đảo ngược trật tự các số dư số nhị phân tương ứng.
Phần lẻ: Nhân kết quả với 2 liên tục cho đến khi hết phần lẻ
Vd: 12,125d = 1100,0010b
vì: Phần nguyên đổi sang được 1100
Phần lẻ : 0,125 x 2 = 0,25 x 2 = 0,5 x 2 = 1,0 001
33
Trường hợp nhị phân không nguyên thập phân thì áp dụng công thức (1)
Ví dụ: 1100,0010b = 1x 23 + 1x 22 + 0x 21 + 0x 20 + 0x 2-1 + 0x 2-2 + 1x 2-3
= 8 + 4 +0 +0 + 0 + 0 + 0,125 = 12,125d
Trường hợp số nhị phân không nguyên Hexa ?
Chuyển đổi giữa các hệ đếm (tt)
34
35
Biểu diễn số trong máy tính
Biểu diễn số nguyên
Gồm số nguyên không dấu và số nguyên có dấu.
Biểu diễn Số nguyên không dấu
Dùng để biểu diễn các đại lượng nguyên dương như địa chỉ ô nhớ, mã ASCII, ... tuỳ vào số byte biểu diễn mà phạm vi biểu diễn của số nguyên không dấu là khác nhau, cụ thể:
Số 8 bit (1 Byte): 256 số khác nhau từ 0, 1, 2, .. ,28 –1
Số 16 bit (2 Byte): 65536 số khác nhau từ 0, 1, 2, .. ,216 –1
36
BIỂU DIỄN SỐ NGUYÊN CÓ DẤU
Biểu diễn bằng giá trị tuyệt đối
Biểu diễn bằng số bù 2
37
BIỂU DIỄN BẰNG GIÁ TRỊ TUYỆT ĐỐI
Bit cao nhất được sử dụng làm bit dấu
Số dương biểu diễn bởi 0
Số âm biểu diễn bởi 1
Các bit còn lại biểu diễn giá trị (tuyệt đối)
Khoảng biểu diễn (-(2n-1-1), 2n-1-1)
Hệ quả: có 2 số 0 là số 0 dương (+0) và số không âm (-0)
38
BIỂU DIỄN BẰNG SỐ BÙ 2
Số bù 1 của một số: là số thu được khi lấy số bao gồm toàn bit 1 trừ đi số đó. (Thực chất chính là đảo từng bit của số đó)
Số bù 2 của một số: là số bù 1 của số đó cộng 1
Số bù 2 của một số: được sử dụng để biểu diễn giá trị đảo của số đó
Khoảng biểu diễn (-2n-1, 2n-1 -1)
39
Biểu diễn Số thực: Bằng dấu chấm tĩnh và dấu chấm động
Bằng dấu chấm tĩnh
Biểu diễn số trong máy tính (tt)
40
Bằng dấu chấm động (chuẩn IEEE/754)
ĐỘ chính xác đơn (32 bit)
S - phần dấu (1 bit) là dấu của phần định trị (0 là dương; 1 là âm)
E - phần mũ (8 bit) là số mũ với cơ số 2
F - phần định trị (23 bit) là phần phân
Giá trị của số được biểu diễn (-1)s x 2E - 127x(1 .F)
S E F
41
Bằng dấu chấm động (chuẩn IEEE/754)
ĐỘ chính xác kép (64 bit)
S - phần dấu (1 bit) là dấu của phần định trị (0 là dương; 1 là âm)
E - phần mũ (11 bit) là số mũ với cơ số 2
F - phần định trị (52 bit) là phần phân số
Giá trị của số được biểu diễn (-1)s x 2E - 1023x(1.F)
S E F
42
Các loại mã khác biểu diễn ký tự
ASCII (Ameriacan Standard Code for Information Interchange)
ISO (International Organization for Standardization)
JIS (Japanese Industrial Standards)
EBCDIC (Extended Binary Coded Decimal Interchange Code)
Unicode
Biểu diễn ký tự
43
Dùng 1 byte để mã hoá nên có 256 ô kí tự.
26 chữ cái latin ‘a’..’z’, 26 chữ cái hoa
10 chữ số thập phân ‘0’..’9’
Các dấu chấm câu ...
Các kí tự điều khiển
128 kí tự đầu tiên là chuẩn quốc tế
128 kí tự sau (128..255) thay đổi theo quốc gia
Bảng mã ASCII Americain Standard Code for Information Interchange)
ASCII
44
Mã từ 0 .. 127 chuẩn, người dùng không thể thay đổi.
Văn bản dùng mã này gọi là văn bản thô (plain text) khác với văn bản Rich text với nhiều kiểu định dạng hơn.
32 ký tự đầu là mã điều khiển, không nhìn thấy được (32 ký tự này tương ứng ký tự A..Z – 64 dùng phím Ctrl trên bàn phím).
Ngoài ra 1 mã ASCII bất kỳ có thể được nhận qua bàn phím bằng cách nhấn ALT + mã thập phân của ký tự đó.
Mã ASCII mở rộng tính từ 128 ..255 dùng cho các ký hiệu khác và người dùng có thể thay đổi.
Với 256 ký tự có thể biểu diễn các từ trong tiếng Anh, Đức, ... Và tạm đủ cho tiếng Việt nhưng không thể đủ cho các chữ tượng hình trong tiếng Trung Quốc, Nhật, ...
45
ISO (International Organization for Standardization):
Các mã ISO 10646 được đưa ra vào năm 1983 với 2 Byte, nhằm đáp ứng cho các chữ tượng hình nói trên nhưng cũng không được thống nhất.
JIS (Japanese Industrial Standards)
Unicode: Do hãng Xerox đưa ra dùng 2 Byte để mã hoá 1 ký tự, hiện nay mã này đang được khuyến khích dùng như bản mã chuẩn. Là mã 16 bit nên khi dùng trong môi trường 8 bit (truyền dữ liệu hoặc lập trình API) chuỗi byte theo quy định UTF-8 (Unicode Transformation Format - 8).
46
Người ta mã hoá âm thanh theo hệ nhị phân bằng cách ngắt âm thanh ra thành nhiều giá trị có khoảng thời gian nhất định. Sau đó máy tính gán cho mỗi giá trị tương ứng 1 mã nhị phân và lưu tuần tự trong tập tin.
Với thính giác con người chỉ phân biệt được tần số âm thanh tối đa là 20 KHz nên khi lấy mẫu người ta ngắt âm thanh theo tần số lớn hơn 2 lần tần số tối đa đó. Chuẩn tần số lấy mẫu hiện nay là 44KHz.
Để biểu diễn 1 giá trị âm thanh có thể dùng 8 bit (256 giá trị khác nhau). Hiện nay người ta dùng 16 bit.
Các định dạng file âm thanh như Wave, Midi...
Biểu diễn âm thanh: Audio
47
Để biểu diễn ảnh đồ hoạ người ta có thể dùng 2 phương pháp là đồ hoạ điểm và đồ hoạ vectơ.
Đồ hoạ điểm: Đồ hoạ điểm biểu diễn ảnh bằng ma trận điểm ảnh. Có thể dùng 1/2/3/4 Byte để biểu diễn 1 điểm ảnh. Người ta ghi thông tin của điểm ảnh lên tập tin dưới các định dạng BMP, GIF, JPG,...
Ảnh biểu diễn theo cách này tốn rất nhiều bộ nhớ.
Biểu diễn hình ảnh:
48
Đồ hoạ vectơ: Chia hình ảnh ra thành nhiều đối tượng như Điểm, đường thẳng, đa giác, mặt, khối. Máy tính dùng công thức tính toán vectơ để dựng nên các hình ảnh từ các đối tượng cơ bản trên.
Có thể xử lý các đối tượng và đặc tính đối tượng bằng mã lệnh nên lưu trữ ít tốn bộ nhớ.
Đồ hoạ vectơ có thể hiển thị được hình ảnh 3-D.
Biểu diễn hình ảnh (tt)
49
Biểu diễn hình ảnh động
Để biểu diễn ảnh động theo điểm ảnh người ta có thể cho hiển thị 30 ảnh / giây để tạo nên ảnh động 1 đoạn phim 1 giây phải lưu đến 30 ảnh mới tạo nên cảm giác liên tục tốn bộ nhớ Nén dữ liệu.
Các định dạng: MPEG, MOV, ...dùng để nén từng ảnh tĩnh và nén những phần ảnh không đổi theo thời gian.
Đối với việc biểu diễn ảnh động theo vectơ, người ta thêm 1 hàm để mô tả vị trí của đối tượng trong không gian theo thời gian. Cần máy có công suất lớn.
50
Biểu diễn các thông tin khác
Người ta cũng có thể số hoá các đại lượng dạng tương tự trong tự nhiên thành rời rạc trong máy tính bằng các bộ cảm biến để chuyển các tín hiệu vật lý điện.
Các thiết bị chuyển đổi như vậy gọi là ADC (Analog to Digital Convert) hay DAC (Digital to Analog Convert).
51
1.3. Các mạch cơ bản
Luận lý máy tính dựa trên nền tảng một nhánh của luận lý toán học được gọi là đại số Boole (George Boole).
Biến luận lý (boolean variable) có hai giá trị, thường được biểu diễn bằng 1 và 0 (bit).
Về mặt hiện thực, biến luận lý thể hiện trạng thái điện áp trên giây dẫn tín hiệu.
52
Các phép toán trên đại số Boole
Not
And
Nand
Or
Xor
Nor
Phép
luận lý
Ex-Nor
(Not And)
(Not Or)
(Not Xor)
(Ex-Or)
53
Phép Not
Ký hiệu dấu gạch ngang trên đầu
x = 1011 x = 0100
x = 1011 = x
Bảng sự thật
54
Phép And
Ký hiệu dấu chấm
như phép nhân
y . 0 = 0
y . 1 = y
Nhận xét
Bảng sự thật
55
Phép Or
Ký hiệu dấu cộng
như phép cộng
y + 0 = y
y + 1 = 1
Nhận xét
Bảng sự thật
56
Phép Xor (Ex-Or)
Ký hiệu dấu cộng trong vòng tròn
như phép modulo
y 0 = y
y 1 = y
Nhận xét
Bảng sự thật
57
Bảng tóm tắt
y and 0 = 0
y and 1 = y
y or 0 = y
y or 1 = 1
y xor 0 = y
y xor 1 = not y
Bảng sự thật
58
Các mạch cơ bản dùng trong máy tính
59
Cổng luận lý
60
Chức năng đóng mở
mức luận lý 1 = 5V
mức luận lý 0 = 0V
y and 1 = y
0 = đóng
1 = mở
y and 0 = 0
61
0
Chức năng đóng mở (tt.)
VCC
R1
S1
mức luận lý 1 = 5V
mức luận lý 0 = 0V
y or 1 = 1
mức 1
mức 0
0 = mở
Cổng OR
1 = đóng
y or 0 = y
62
Các mạch tích hợp
Mạch cộng bán phần thực hiện phép cộng trên hai bit, cho ra kết quả là bit tổng S và bit nhớ C.
Mạch cộng toàn phần cũng tương tự mạch cộng bán phần nhưng đầu vào có cộng thêm bit nhớ C0.
Các mạch dãy (Flip/flop)…
63
Mạch cộng bán phần
AND
XOR
64
Mạch cộng toàn phần
Mạch cộng toàn phần
y
S
C
x
C0
S = x + y + C0
S = (x + y) + C0
Tính: S1 = x + y
Tính: S2 = S1 + C0
Cần bộ cộng
bán phần 1
Cần bộ cộng
bán phần 2
65
Mạch cộng toàn phần (tt.)
C0
x
y
S1
S
C1
C2
C
66
Mạch cộng nhiều bit
y0
S0
x0
0
S1
S2
S3
C
x1
x2
x3
y1
y2
y3
Cộng 0
Cộng 1
Cộng 2
Cộng 3
x3x2x1x0
S4 S3S2S1S0
y3y2y1y0
+
67
1.4. Khoa học máy tính
Computer science hay computing science
Là ngành nghiên cứu các cơ sở lý thuyết về thông tin và tính toán cùng với việc thực hiện và ứng dụng của chúng trong các hệ thống máy tính.
68
Các lĩnh vực của khoa học máy tính
Cơ sở toán học
Lý thuyết tính toán
Cấu trúc dữ liệu và giải thuật
Ngôn ngữ lập trình và trình biên dịch
Hệ thống phân tán, song song, tương tranh
Kỹ nghệ phần mềm
Kiến trúc máy tính
Truyền thông
Cơ sở dữ liệu
Trí tuệ nhân tạo
…
69
Cơ sở toán học
Lôgic toán (Mathematical logic)
Lôgic Bool và các phương pháp tương ứng dùng để mô hình hóa các truy vấn lôgic; Sự sử dụng các phương pháp chứng minh hình thức (formal proof).
Lý thuyết số (Number theory)
Lý thuyết về chứng minh và các khảo nghiệm trong việc tìm những chứng minh trong giới hạn các số nguyên. Lý thuyết số được sử dụng trong mật mã học và đồng thời được dùng như một phương thức kiểm thử trong trí tuệ nhân tạo.
Lý thuyết đồ thị (Graph theory)
Cơ sở cho cấu trúc dữ liệu và các thuật toán tìm kiếm
…
70
Lý thuyết tính toán
Lý thuyết Ôtômat (Automata theory)
Các cấu trúc lôgic khác nhau có thể sử dụng để giải quyết các bài toán.
Lý thuyết khả năng tính toán (Computability theory)
Những gì có thể tính toán được bằng các mô hình máy tính hiện tại. Các chứng minh của Alan Turing và những người khác trình bày cho chúng ta biết được khả năng những gì có thể tính toán được và những gì không thể.
Lý thuyết độ phức tạp tính toán (Computational complexity theory)
71
Cấu trúc dữ liệu và giải thuật
Phân tích thuật toán (Analysis of algorithms)
Độ phức tạp về thời gian và không gian của các thuật toán.
Thuật toán (Algorithms)
Các quá trình lôgic trên nguyên tắc được sử dụng cho việc tính toán và tính hiệu quả của các quá trình này.
Cấu trúc dữ liệu (Data structures)
Tổ chức của dữ liệu và các quy tắc thao tác dữ liệu.
72
Ngôn ngữ lập trình và trình biên dịch
Trình biên dịch (Compilers)
Những phương thức khác nhau dùng để dịch các chương trình máy tính, thường là từ các ngôn ngữ lập trình bậc cao sang các ngôn ngữ lập trình bậc thấp.
Trình thông dịch (Interpreter)
Một chương trình sử dụng để biên dịch và thi hành trực tiếp một chương trình phần mềm khác dùng trong máy tính mà không phải thông qua quá trình biên dịch.
Ngôn ngữ lập trình (Programming languages)
Các khuôn mẫu ngôn ngữ dùng để biểu diễn các thuật toán. …
73
Hệ thống phân tán, song song, tương tranh
Tương tranh (Concurrency)
Lý thuyết và thực tiễn của tính toán đồng thời; an toàn dữ liệu trong môi trường đa nhiệm hay đa luồng bất kỳ.
Tính toán phân tán (Distributed computing)
Tính toán sử dụng nhiều thiết bị tính toán trên một mạng để thực hiện một nhiệm vụ hoặc một mục tiêu chung.
Tính toán song song (Parallel computing)
Tính toán sử dụng nhiều luồng thực thi đồng thời.
74
Kỹ nghệ phần mềm
Thiết kế thuật toán (Algorithm design)
Lập trình máy tính (Computer programming)
Các phương pháp hình thức (Formal methods)
Sử dụng toán học để miêu tả và lập luận đối với các thiết kế phần mềm.
Kỹ nghệ phần mềm (Software development)
Những nguyên lý và thực hành trong việc thiết kế, phát triển và kiểm thử các chương trình, cùng những phương pháp thực hành kỹ nghệ đúng đắn.
…
75
Kiến trúc máy tính
Kiến trúc máy tính (Computer architecture)
Việc thiết kế, tổ chức, tối ưu hóa và kiểm định một hệ thống máy tính, chủ yếu về CPU và tiểu hệ bộ nhớ máy tính (và hệ thống bus nối giữa chúng).
Tổ chức máy tính (Computer organization)
Nghiên cứu các kiến trúc máy tính trên cơ sở các mô tả mạch điện, bộ xử lý trung tâm, bộ xử lý tín hiệu số của máy tính.
Hệ điều hành
Những hệ thống dùng để quản lý các tài nguyên máy tính và cung cấp nền tảng cơ bản cho một hệ thống khả dụng. ..
76
Truyền thông
Xử lý âm thanh trong máy tính (Computer audio)
Những thuật toán và cấu trúc dữ liệu dùng để kiến tạo, thao tác, lưu trữ, và truyền thanh các bản ghi âm thanh kỹ thuật số (digital audio), nhận dạng giọng nói (voice recognition).
Mạng máy tính (Computer networking)
Các giao thức dành cho việc truyền thông dữ liệu một cách đáng tin cậy qua các môi trường truyền thông chuyên dụng hoặc chia sẻ khác nhau. Thường khi bao gồm cả việc sửa lỗi (error correction) trong truyền thông.
Mật mã học (Cryptography)
Áp dụng kết quả của các lý thuyết độ phức tạp tính toán, lý thuyết xác suất, và lý thuyết số để kiến tạo và phá mật mã.
77
Cơ sở dữ liệu
Khai phá dữ liệu (Data mining)
Nghiên cứu các phương pháp sàng lọc, rút ra những thông tin cần thiết từ các nguồn dữ liệu khác nhau.
Cơ sở dữ liệu quan hệ (Relational databases)
Nghiên cứu các thuật toán tìm kiếm và xử lý thông tin trong các tài liệu và cơ sở dữ liệu; có quan hệ gần gũi với ngành thu thập thông tin (information retrieval).
CSDL hướng đối tượng,…
78
Trí tuệ nhân tạo
Trí tuệ nhân tạo (Artificial intelligence)
Sự nghiên cứu và thực thi các hệ thống có khả năng tự thể hiện trí thông minh hoặc tự biểu đạt những hành vi của chính bản thân mình.
Lập luận tự động (Automated reasoning)
Nghiên cứu các động cơ giải quyết bài toán, chẳng hạn như được sử dụng trong Prolog, các động cơ này tạo ra các bước dẫn đến một kết quả nếu cho trước một truy vấn về một sự kiện và một cơ sở dữ liệu gồm các luật (rule database).
Máy học (Machine learning)
Nghiên cứu việc tự động tạo nhóm các luật và tiên đề dựa trên những dữ liệu cho trước.
Xử lý ngôn ngữ tự nhiên
Tự động hóa việc tiếp thu và kiến tạo ngôn ngữ loài người.
Rôbô học (Robotics) :Các thuật toán điều khiển hành vi của rôbô.
79
Bài tập
Tìm hiểu lỗi truyền thông và các cơ chế kiểm tra, sửa lỗi:
Parity bit
Mã sữa lỗi
Nộp báo cáo bằng bản viết tay khoảng 12 trang A4 (tính vào điểm BTCN)
Tuần sau nộp
GIỚI THIỆU KHOA HỌC MÁY TÍNH
NGUYỄN THANH TRUNG
2
Chương1 – GIỚI THIỆU TỔNG QUAN
1.1. Sơ lược về máy tính và ngành KHMT
1.2. Biểu diễn thông tin trong máy tính
1.3. Các cổng logic cơ bản
3
Máy tính (Computer) là một thiết bị điện tử dùng để lưu trữ và xử lý thông tin theo các chương trình định trước.
Máy tính, máy tính tương tự (Analog), máy tính số (Digital)… Sơ lược về lịch sử và phân loại máy tính
1.1. Sơ lược về máy tính
4
1.1.1.LỊCH SỬ PHÁT TRIỂN
5
Các thế hệ máy tính …
+, -, X, :
6
*Thế hệ thứ nhất (1945-1955) máy tính dùng đèn điện tử: Trong những năm 40- 50 các thiết bị đầu tiên của máy tính điện tử được xây dựng và phát triển với.
+ Phần cứng: Chủ yếu là dùng đèn điện tử, độ tin cậy thấp, tốc độ chậm tiêu hao năng lượng rất lớn.
Ví dụ: Chiếc máy tính điện tử đầu tiên là chiếc ENIAC(Electronic Numberical Intergrator And Calculator) do John Mauchley và J.Presper Eckert thiết kế. Nó bao gồm 18.000 đèn điện tử, 1.500 rơle, nặng 30 tấn tiêu thụ 140 KW điện. Dùng hệ thập phân
+ Phần mềm: Chủ yếu dùng ngôn ngữ máy và đặt công tắc bật tắt trực tiếp.
Ví dụ: Với chiếc ENIAC người ta phải đặt 6000 switch.
7
Máy tính ENIAC
8
Máy IAS (Institude of Advanced Study)
Do Von Neumann thiết kế, gồm các thành phần cơ bản sau (1947-1952)
Máy tính hệ 2 đầu tiên
9
John von Neumann và IAS
10
*Thế hệ thứ hai (1955-1965) máy tính dúng thiết bị bán dẫn:
+ Phần cứng: Dùng linh kiện mới là Transitor (được phòng thí nghiệm Bell phát triển năm 1948). Bộ nhớ máy tính được tăng lên đáng kể và trở nên nhỏ gọn hơn. Chiếc máy đầu tiên của thế hệ này là chiếc TX-0.
+ Phần mềm: Đã bắt đầu sử dụng các ngôn ngữ lập trình bậc cao như Cobol, PL1,…
11
Các máy tính tiêu biểu
12
*Thế hệ thứ ba (1965-1980) dùng mạch hợp tích hợp IC:
+Phần cứng: Công nghệ điện tử giờ đã phát triển rất nhanh cho phép đặt hàng chục Transitor vào một vỏ chung gọi là con chip. Linh kiện chủ yếu là các mạch tích hợp IC, đã bắt đầu xuất hiện đĩa từ để lưu trữ dữ liệu. Cho phép tốc độ tính toán đạt vài triệu phép tính/giây, có dung lượng bộ nhớ trong lên tới nhiều Mega bytes (MB).
+Phần mềm: Đã xuất hiện các hệ điều hành thế hệ đầu tiên. Các phần mềm ứng dụng ngày càng phát triển.
13
*Thế hệ thứ tư (1980-199x) sử dụng công nghệ (VLSI):
+ Phần cứng: Vào những năm 80 công nghệ (VLSI -Very Large Scale Integrator) ra đời cho phép tích hợp trong một con chip hàng triệu Transitor khiến cho máy tính trở nên nhỏ hơn, nhanh hơn với tốc độ hàng triệu phép tính một giây là nền tảng cho chiếc máy tính PC (Personal Computer) ngày nay.
+ Phần mềm: Cùng với sự phát triển của máy tính các phần mềm ứng dụng đã phát triển như vũ bão làm cho tin học len lỏi vào mọi ứng dụng trong cuộc sống.
14
Thế hệ thứ 5: Người máy ?
Hiện nay đang được nghiên cứu và phát triển dưới dạng các máy tính thông minh, robot,...
Ví dụ: Deep Blue, Asimo,…
15
+ Máy tính cá nhân (Personal Computer): Là máy tính để bàn, chỉ có một chíp xử lý và thường dùng cho một người.
+ Máy tính Mini (Minicomputer): Thường được dùng trong các lĩnh vực ứng dụng thời gian thực và cho các ứng dụng vừa và nhỏ trong các dây chuyền sản xuất hay trong hàng không.
+ Máy tính lớn (Main Frame): Thường dùng trong các trung tâm tính toán đòi hỏi phải tốc độ xử lý tốt.
+ Siêu máy tính (Super Computer): Là một hệ thống gồm nhiều máy lớn ghép song song có tốc độ tính toán cực kỳ lớn và thường dùng trong các lĩnh vực đặc biệt, chủ yếu trong quân sự và vũ trụ. Siêu máy tính Deep Blue là một trong những chiếc thuộc loại này.
1.1.2.Các loại máy tính
16
Thông tin: là một khái niệm trừu tượng mô tả tất cả những gì đem lại hiểu biết, nhận thức của con người và các sinh vật sống khác.
Dữ liệu
Dữ liệu (dữ kiện) có thể hiểu nôm na là vật liệu thô mang thông tin.
Dữ liệu được tập hợp lại và được xử lí sẽ cho ta thông tin.
=> Dữ liệu là nguồn gốc, là vật mang thông tin, là vật liệu sản xuất ra thông tin.
1.1.3.CÁC KHÁI NIỆM CƠ BẢN
17
Dữ liệu trong thực tế có thể là
Tín hiệu vật lí (Physical signal)
Các số liệu (number)
Kí hiệu (symbol)
Thí dụ 1: Nhiệt độ cháu bé 39oC ...
Thí dụ 2: 28, 27, 30, 32, 27 ... ?
Thí dụ 3: Tính qui ước biểu diễn thông tin
I là chữ cái i hay là số I La mã ?
18
Xử lí thông tin
lọc lấy thông tin cần thiết
truyền tin: nhanh, chính xác ...
lọc nhiễu
lưu trữ
tìm kiếm, lấy ra
sao chép
mã hoá bảo mật
...
19
Xử lí thông tin bằng máy tính
Khi thông tin ít, có thể làm thủ công.
Khi thông tin nhiều lên, đòi hỏi máy móc tự động làm thay, đặc biệt là máy tính điện tử.
Ưu điểm của máy tính: Làm nhanh, không biết chán, chính xác ...
20
Phần cứng (Hardware)
Phần mềm (Software)
Chương trình, lập trình
…
21
Làm thế nào để biểu diễn thông tin trong máy tính ?
Ta phải dùng mã nhị phân !
Mã nhị phân là gì ?
00111010 bit (Binary Digit)
Làm cách nào ?
1.2. Biểu diễn thông tin trong máy tính
22
Các dạng Thông tin
Thông tin
Mã hóa
Tổ hợp bit
Âm thanh
Hình ảnh
Nhiệt độ
Chữ
Số
Ánh sáng
Áp suất
Độ ẩm
Điện áp
Dòng điện
Xử lý
23
Mã hóa thông tin ?
Thông tin để máy tính xử lí được thì cần phải biến đổi thành một dãy bit. Cách biến đổi như vậy gọi là mã hoá thông tin. Biến đổi ngược lại ?
Người ta sử dụng mã ASCII để mã hoá kí tự. Bảng mã ASCII gồm 256 kí tự
Ví dụ: Kí tự “A” có mã ASCII thập phân là 65 và mã ASCII nhị phân là 01000001.
Để chuyển tín hiệu âm thanh máy tính cần có bộ chuyển đổi: Card âm thanh …
…
24
Đơn vị đo thông tin
Đơn vị cơ bản để đo thông tin được gọi là bit.
1 bit có 2 trạng thái : 0/1
Dãy số 0101… gọi là số nhị phân - số hệ 2
Dãy 8 bit = 1 byte.
Ngoài ra ta có các đơn vị lớn hơn để đo thông tin.
25
Các bội số của Byte
p. 350
26
Biểu diễn các dạng thông tin cơ bản trong máy tính
Dạng Số
Dạng văn bản: Dạng quen thuộc gồm các chữ cái, chữ số
Dạng hình ảnh: Bức tranh, bản đồ, băng hình
Dạng âm thanh:Tiếng nói con người, tiếng sóng, bản nhạc..
Nhiệt độ…
27
1.2.1. Biểu diễn số
Hệ đếm: Tập các ký hiệu, quy tắc dùng để biểu diễn , tính toán các giá trị. Gồm:
Hệ đếm không theo vị trí: Số La mã
Hệ đếm theo vị trí: Hệ thập phân, nhị phân, Hexa, ...
Ví dụ: 2356 = 2 x 103 + 3 x 102 + 5 x 101 + 6 x 100
Một số X bất kỳ có thể biểu diễn như sau:
X = xn-1an-1 + xn-2an-2 + xn-3an-3 + ... + x0a0 +
x-1a-1 + x-2a-2 + ... (1)
Trong đó : a gọi là cơ số
28
Hệ thập phân – Decimal (cơ số 10 ): Dùng tập số {0,1, .. ,9}
Ví dụ: 123d; 25,4 ; 580, ...
Nhị phân – Binary (cơ số 2): Dùng tập số {0,1},
Ví dụ: 10001110b; 11000010b
Hệ bát phân (cơ số 8): Dùng tập số {0,1,..7}
Thập lục phân - HexaDecimal (cơ số 16): Dùng tập số {0,1,..9,A,B,C,D,E,F}, ...
Ví dụ: AC0Dh, 123h,..
Một số hệ đếm theo vị trí thông dụng:
29
30
Chuyển đổi giữa các hệ đếm
Thập phân (nguyên) nhị phân: Chia liên tiếp cho 2, đến khi kết quả bằng 0. Đảo ngược trật tự các số dư số nhị phân tương ứng.
Vd: 12d = 1100b
Thập phân Hexa: tương tự ta chia liên tiếp cho 16 ...
Nhị phân Thập phân : Dùng công thức (1)
Hexa thập phân : Dùng công thức (1).
31
Chuyển đổi giữa các hệ đếm (tt)
Nhị phân Hexa: Nhóm 4 bit (Nibble) của số nhị phân tương ứng 1 số Hexa (Nhóm từ phải sang).
Ví dụ: 100 1100 0110 1010b = 4C6Ah
Hexa nhị phân: Cứ 1 số Hexa tương ứng 4 số nhị phân.
Ví dụ: 1ADFh= 0001 1010 1101 1111b
32
Chuyển đổi giữa các hệ đếm (tt)
Trường hợp thập phân không nguyên nhị phân thì :
phần nguyên : Chia liên tiếp cho 2, đến khi kết quả bằng 0. Đảo ngược trật tự các số dư số nhị phân tương ứng.
Phần lẻ: Nhân kết quả với 2 liên tục cho đến khi hết phần lẻ
Vd: 12,125d = 1100,0010b
vì: Phần nguyên đổi sang được 1100
Phần lẻ : 0,125 x 2 = 0,25 x 2 = 0,5 x 2 = 1,0 001
33
Trường hợp nhị phân không nguyên thập phân thì áp dụng công thức (1)
Ví dụ: 1100,0010b = 1x 23 + 1x 22 + 0x 21 + 0x 20 + 0x 2-1 + 0x 2-2 + 1x 2-3
= 8 + 4 +0 +0 + 0 + 0 + 0,125 = 12,125d
Trường hợp số nhị phân không nguyên Hexa ?
Chuyển đổi giữa các hệ đếm (tt)
34
35
Biểu diễn số trong máy tính
Biểu diễn số nguyên
Gồm số nguyên không dấu và số nguyên có dấu.
Biểu diễn Số nguyên không dấu
Dùng để biểu diễn các đại lượng nguyên dương như địa chỉ ô nhớ, mã ASCII, ... tuỳ vào số byte biểu diễn mà phạm vi biểu diễn của số nguyên không dấu là khác nhau, cụ thể:
Số 8 bit (1 Byte): 256 số khác nhau từ 0, 1, 2, .. ,28 –1
Số 16 bit (2 Byte): 65536 số khác nhau từ 0, 1, 2, .. ,216 –1
36
BIỂU DIỄN SỐ NGUYÊN CÓ DẤU
Biểu diễn bằng giá trị tuyệt đối
Biểu diễn bằng số bù 2
37
BIỂU DIỄN BẰNG GIÁ TRỊ TUYỆT ĐỐI
Bit cao nhất được sử dụng làm bit dấu
Số dương biểu diễn bởi 0
Số âm biểu diễn bởi 1
Các bit còn lại biểu diễn giá trị (tuyệt đối)
Khoảng biểu diễn (-(2n-1-1), 2n-1-1)
Hệ quả: có 2 số 0 là số 0 dương (+0) và số không âm (-0)
38
BIỂU DIỄN BẰNG SỐ BÙ 2
Số bù 1 của một số: là số thu được khi lấy số bao gồm toàn bit 1 trừ đi số đó. (Thực chất chính là đảo từng bit của số đó)
Số bù 2 của một số: là số bù 1 của số đó cộng 1
Số bù 2 của một số: được sử dụng để biểu diễn giá trị đảo của số đó
Khoảng biểu diễn (-2n-1, 2n-1 -1)
39
Biểu diễn Số thực: Bằng dấu chấm tĩnh và dấu chấm động
Bằng dấu chấm tĩnh
Biểu diễn số trong máy tính (tt)
40
Bằng dấu chấm động (chuẩn IEEE/754)
ĐỘ chính xác đơn (32 bit)
S - phần dấu (1 bit) là dấu của phần định trị (0 là dương; 1 là âm)
E - phần mũ (8 bit) là số mũ với cơ số 2
F - phần định trị (23 bit) là phần phân
Giá trị của số được biểu diễn (-1)s x 2E - 127x(1 .F)
S E F
41
Bằng dấu chấm động (chuẩn IEEE/754)
ĐỘ chính xác kép (64 bit)
S - phần dấu (1 bit) là dấu của phần định trị (0 là dương; 1 là âm)
E - phần mũ (11 bit) là số mũ với cơ số 2
F - phần định trị (52 bit) là phần phân số
Giá trị của số được biểu diễn (-1)s x 2E - 1023x(1.F)
S E F
42
Các loại mã khác biểu diễn ký tự
ASCII (Ameriacan Standard Code for Information Interchange)
ISO (International Organization for Standardization)
JIS (Japanese Industrial Standards)
EBCDIC (Extended Binary Coded Decimal Interchange Code)
Unicode
Biểu diễn ký tự
43
Dùng 1 byte để mã hoá nên có 256 ô kí tự.
26 chữ cái latin ‘a’..’z’, 26 chữ cái hoa
10 chữ số thập phân ‘0’..’9’
Các dấu chấm câu ...
Các kí tự điều khiển
128 kí tự đầu tiên là chuẩn quốc tế
128 kí tự sau (128..255) thay đổi theo quốc gia
Bảng mã ASCII Americain Standard Code for Information Interchange)
ASCII
44
Mã từ 0 .. 127 chuẩn, người dùng không thể thay đổi.
Văn bản dùng mã này gọi là văn bản thô (plain text) khác với văn bản Rich text với nhiều kiểu định dạng hơn.
32 ký tự đầu là mã điều khiển, không nhìn thấy được (32 ký tự này tương ứng ký tự A..Z – 64 dùng phím Ctrl trên bàn phím).
Ngoài ra 1 mã ASCII bất kỳ có thể được nhận qua bàn phím bằng cách nhấn ALT + mã thập phân của ký tự đó.
Mã ASCII mở rộng tính từ 128 ..255 dùng cho các ký hiệu khác và người dùng có thể thay đổi.
Với 256 ký tự có thể biểu diễn các từ trong tiếng Anh, Đức, ... Và tạm đủ cho tiếng Việt nhưng không thể đủ cho các chữ tượng hình trong tiếng Trung Quốc, Nhật, ...
45
ISO (International Organization for Standardization):
Các mã ISO 10646 được đưa ra vào năm 1983 với 2 Byte, nhằm đáp ứng cho các chữ tượng hình nói trên nhưng cũng không được thống nhất.
JIS (Japanese Industrial Standards)
Unicode: Do hãng Xerox đưa ra dùng 2 Byte để mã hoá 1 ký tự, hiện nay mã này đang được khuyến khích dùng như bản mã chuẩn. Là mã 16 bit nên khi dùng trong môi trường 8 bit (truyền dữ liệu hoặc lập trình API) chuỗi byte theo quy định UTF-8 (Unicode Transformation Format - 8).
46
Người ta mã hoá âm thanh theo hệ nhị phân bằng cách ngắt âm thanh ra thành nhiều giá trị có khoảng thời gian nhất định. Sau đó máy tính gán cho mỗi giá trị tương ứng 1 mã nhị phân và lưu tuần tự trong tập tin.
Với thính giác con người chỉ phân biệt được tần số âm thanh tối đa là 20 KHz nên khi lấy mẫu người ta ngắt âm thanh theo tần số lớn hơn 2 lần tần số tối đa đó. Chuẩn tần số lấy mẫu hiện nay là 44KHz.
Để biểu diễn 1 giá trị âm thanh có thể dùng 8 bit (256 giá trị khác nhau). Hiện nay người ta dùng 16 bit.
Các định dạng file âm thanh như Wave, Midi...
Biểu diễn âm thanh: Audio
47
Để biểu diễn ảnh đồ hoạ người ta có thể dùng 2 phương pháp là đồ hoạ điểm và đồ hoạ vectơ.
Đồ hoạ điểm: Đồ hoạ điểm biểu diễn ảnh bằng ma trận điểm ảnh. Có thể dùng 1/2/3/4 Byte để biểu diễn 1 điểm ảnh. Người ta ghi thông tin của điểm ảnh lên tập tin dưới các định dạng BMP, GIF, JPG,...
Ảnh biểu diễn theo cách này tốn rất nhiều bộ nhớ.
Biểu diễn hình ảnh:
48
Đồ hoạ vectơ: Chia hình ảnh ra thành nhiều đối tượng như Điểm, đường thẳng, đa giác, mặt, khối. Máy tính dùng công thức tính toán vectơ để dựng nên các hình ảnh từ các đối tượng cơ bản trên.
Có thể xử lý các đối tượng và đặc tính đối tượng bằng mã lệnh nên lưu trữ ít tốn bộ nhớ.
Đồ hoạ vectơ có thể hiển thị được hình ảnh 3-D.
Biểu diễn hình ảnh (tt)
49
Biểu diễn hình ảnh động
Để biểu diễn ảnh động theo điểm ảnh người ta có thể cho hiển thị 30 ảnh / giây để tạo nên ảnh động 1 đoạn phim 1 giây phải lưu đến 30 ảnh mới tạo nên cảm giác liên tục tốn bộ nhớ Nén dữ liệu.
Các định dạng: MPEG, MOV, ...dùng để nén từng ảnh tĩnh và nén những phần ảnh không đổi theo thời gian.
Đối với việc biểu diễn ảnh động theo vectơ, người ta thêm 1 hàm để mô tả vị trí của đối tượng trong không gian theo thời gian. Cần máy có công suất lớn.
50
Biểu diễn các thông tin khác
Người ta cũng có thể số hoá các đại lượng dạng tương tự trong tự nhiên thành rời rạc trong máy tính bằng các bộ cảm biến để chuyển các tín hiệu vật lý điện.
Các thiết bị chuyển đổi như vậy gọi là ADC (Analog to Digital Convert) hay DAC (Digital to Analog Convert).
51
1.3. Các mạch cơ bản
Luận lý máy tính dựa trên nền tảng một nhánh của luận lý toán học được gọi là đại số Boole (George Boole).
Biến luận lý (boolean variable) có hai giá trị, thường được biểu diễn bằng 1 và 0 (bit).
Về mặt hiện thực, biến luận lý thể hiện trạng thái điện áp trên giây dẫn tín hiệu.
52
Các phép toán trên đại số Boole
Not
And
Nand
Or
Xor
Nor
Phép
luận lý
Ex-Nor
(Not And)
(Not Or)
(Not Xor)
(Ex-Or)
53
Phép Not
Ký hiệu dấu gạch ngang trên đầu
x = 1011 x = 0100
x = 1011 = x
Bảng sự thật
54
Phép And
Ký hiệu dấu chấm
như phép nhân
y . 0 = 0
y . 1 = y
Nhận xét
Bảng sự thật
55
Phép Or
Ký hiệu dấu cộng
như phép cộng
y + 0 = y
y + 1 = 1
Nhận xét
Bảng sự thật
56
Phép Xor (Ex-Or)
Ký hiệu dấu cộng trong vòng tròn
như phép modulo
y 0 = y
y 1 = y
Nhận xét
Bảng sự thật
57
Bảng tóm tắt
y and 0 = 0
y and 1 = y
y or 0 = y
y or 1 = 1
y xor 0 = y
y xor 1 = not y
Bảng sự thật
58
Các mạch cơ bản dùng trong máy tính
59
Cổng luận lý
60
Chức năng đóng mở
mức luận lý 1 = 5V
mức luận lý 0 = 0V
y and 1 = y
0 = đóng
1 = mở
y and 0 = 0
61
0
Chức năng đóng mở (tt.)
VCC
R1
S1
mức luận lý 1 = 5V
mức luận lý 0 = 0V
y or 1 = 1
mức 1
mức 0
0 = mở
Cổng OR
1 = đóng
y or 0 = y
62
Các mạch tích hợp
Mạch cộng bán phần thực hiện phép cộng trên hai bit, cho ra kết quả là bit tổng S và bit nhớ C.
Mạch cộng toàn phần cũng tương tự mạch cộng bán phần nhưng đầu vào có cộng thêm bit nhớ C0.
Các mạch dãy (Flip/flop)…
63
Mạch cộng bán phần
AND
XOR
64
Mạch cộng toàn phần
Mạch cộng toàn phần
y
S
C
x
C0
S = x + y + C0
S = (x + y) + C0
Tính: S1 = x + y
Tính: S2 = S1 + C0
Cần bộ cộng
bán phần 1
Cần bộ cộng
bán phần 2
65
Mạch cộng toàn phần (tt.)
C0
x
y
S1
S
C1
C2
C
66
Mạch cộng nhiều bit
y0
S0
x0
0
S1
S2
S3
C
x1
x2
x3
y1
y2
y3
Cộng 0
Cộng 1
Cộng 2
Cộng 3
x3x2x1x0
S4 S3S2S1S0
y3y2y1y0
+
67
1.4. Khoa học máy tính
Computer science hay computing science
Là ngành nghiên cứu các cơ sở lý thuyết về thông tin và tính toán cùng với việc thực hiện và ứng dụng của chúng trong các hệ thống máy tính.
68
Các lĩnh vực của khoa học máy tính
Cơ sở toán học
Lý thuyết tính toán
Cấu trúc dữ liệu và giải thuật
Ngôn ngữ lập trình và trình biên dịch
Hệ thống phân tán, song song, tương tranh
Kỹ nghệ phần mềm
Kiến trúc máy tính
Truyền thông
Cơ sở dữ liệu
Trí tuệ nhân tạo
…
69
Cơ sở toán học
Lôgic toán (Mathematical logic)
Lôgic Bool và các phương pháp tương ứng dùng để mô hình hóa các truy vấn lôgic; Sự sử dụng các phương pháp chứng minh hình thức (formal proof).
Lý thuyết số (Number theory)
Lý thuyết về chứng minh và các khảo nghiệm trong việc tìm những chứng minh trong giới hạn các số nguyên. Lý thuyết số được sử dụng trong mật mã học và đồng thời được dùng như một phương thức kiểm thử trong trí tuệ nhân tạo.
Lý thuyết đồ thị (Graph theory)
Cơ sở cho cấu trúc dữ liệu và các thuật toán tìm kiếm
…
70
Lý thuyết tính toán
Lý thuyết Ôtômat (Automata theory)
Các cấu trúc lôgic khác nhau có thể sử dụng để giải quyết các bài toán.
Lý thuyết khả năng tính toán (Computability theory)
Những gì có thể tính toán được bằng các mô hình máy tính hiện tại. Các chứng minh của Alan Turing và những người khác trình bày cho chúng ta biết được khả năng những gì có thể tính toán được và những gì không thể.
Lý thuyết độ phức tạp tính toán (Computational complexity theory)
71
Cấu trúc dữ liệu và giải thuật
Phân tích thuật toán (Analysis of algorithms)
Độ phức tạp về thời gian và không gian của các thuật toán.
Thuật toán (Algorithms)
Các quá trình lôgic trên nguyên tắc được sử dụng cho việc tính toán và tính hiệu quả của các quá trình này.
Cấu trúc dữ liệu (Data structures)
Tổ chức của dữ liệu và các quy tắc thao tác dữ liệu.
72
Ngôn ngữ lập trình và trình biên dịch
Trình biên dịch (Compilers)
Những phương thức khác nhau dùng để dịch các chương trình máy tính, thường là từ các ngôn ngữ lập trình bậc cao sang các ngôn ngữ lập trình bậc thấp.
Trình thông dịch (Interpreter)
Một chương trình sử dụng để biên dịch và thi hành trực tiếp một chương trình phần mềm khác dùng trong máy tính mà không phải thông qua quá trình biên dịch.
Ngôn ngữ lập trình (Programming languages)
Các khuôn mẫu ngôn ngữ dùng để biểu diễn các thuật toán. …
73
Hệ thống phân tán, song song, tương tranh
Tương tranh (Concurrency)
Lý thuyết và thực tiễn của tính toán đồng thời; an toàn dữ liệu trong môi trường đa nhiệm hay đa luồng bất kỳ.
Tính toán phân tán (Distributed computing)
Tính toán sử dụng nhiều thiết bị tính toán trên một mạng để thực hiện một nhiệm vụ hoặc một mục tiêu chung.
Tính toán song song (Parallel computing)
Tính toán sử dụng nhiều luồng thực thi đồng thời.
74
Kỹ nghệ phần mềm
Thiết kế thuật toán (Algorithm design)
Lập trình máy tính (Computer programming)
Các phương pháp hình thức (Formal methods)
Sử dụng toán học để miêu tả và lập luận đối với các thiết kế phần mềm.
Kỹ nghệ phần mềm (Software development)
Những nguyên lý và thực hành trong việc thiết kế, phát triển và kiểm thử các chương trình, cùng những phương pháp thực hành kỹ nghệ đúng đắn.
…
75
Kiến trúc máy tính
Kiến trúc máy tính (Computer architecture)
Việc thiết kế, tổ chức, tối ưu hóa và kiểm định một hệ thống máy tính, chủ yếu về CPU và tiểu hệ bộ nhớ máy tính (và hệ thống bus nối giữa chúng).
Tổ chức máy tính (Computer organization)
Nghiên cứu các kiến trúc máy tính trên cơ sở các mô tả mạch điện, bộ xử lý trung tâm, bộ xử lý tín hiệu số của máy tính.
Hệ điều hành
Những hệ thống dùng để quản lý các tài nguyên máy tính và cung cấp nền tảng cơ bản cho một hệ thống khả dụng. ..
76
Truyền thông
Xử lý âm thanh trong máy tính (Computer audio)
Những thuật toán và cấu trúc dữ liệu dùng để kiến tạo, thao tác, lưu trữ, và truyền thanh các bản ghi âm thanh kỹ thuật số (digital audio), nhận dạng giọng nói (voice recognition).
Mạng máy tính (Computer networking)
Các giao thức dành cho việc truyền thông dữ liệu một cách đáng tin cậy qua các môi trường truyền thông chuyên dụng hoặc chia sẻ khác nhau. Thường khi bao gồm cả việc sửa lỗi (error correction) trong truyền thông.
Mật mã học (Cryptography)
Áp dụng kết quả của các lý thuyết độ phức tạp tính toán, lý thuyết xác suất, và lý thuyết số để kiến tạo và phá mật mã.
77
Cơ sở dữ liệu
Khai phá dữ liệu (Data mining)
Nghiên cứu các phương pháp sàng lọc, rút ra những thông tin cần thiết từ các nguồn dữ liệu khác nhau.
Cơ sở dữ liệu quan hệ (Relational databases)
Nghiên cứu các thuật toán tìm kiếm và xử lý thông tin trong các tài liệu và cơ sở dữ liệu; có quan hệ gần gũi với ngành thu thập thông tin (information retrieval).
CSDL hướng đối tượng,…
78
Trí tuệ nhân tạo
Trí tuệ nhân tạo (Artificial intelligence)
Sự nghiên cứu và thực thi các hệ thống có khả năng tự thể hiện trí thông minh hoặc tự biểu đạt những hành vi của chính bản thân mình.
Lập luận tự động (Automated reasoning)
Nghiên cứu các động cơ giải quyết bài toán, chẳng hạn như được sử dụng trong Prolog, các động cơ này tạo ra các bước dẫn đến một kết quả nếu cho trước một truy vấn về một sự kiện và một cơ sở dữ liệu gồm các luật (rule database).
Máy học (Machine learning)
Nghiên cứu việc tự động tạo nhóm các luật và tiên đề dựa trên những dữ liệu cho trước.
Xử lý ngôn ngữ tự nhiên
Tự động hóa việc tiếp thu và kiến tạo ngôn ngữ loài người.
Rôbô học (Robotics) :Các thuật toán điều khiển hành vi của rôbô.
79
Bài tập
Tìm hiểu lỗi truyền thông và các cơ chế kiểm tra, sửa lỗi:
Parity bit
Mã sữa lỗi
Nộp báo cáo bằng bản viết tay khoảng 12 trang A4 (tính vào điểm BTCN)
Tuần sau nộp
 






Các ý kiến mới nhất