Cu trc my tnh Chng 2 KIN TRC

  • Slides: 38
Download presentation
Cấu trúc máy tính Chương 2 KIẾN TRÚC CƠ BẢN CỦA MÁY TÍNH 3/1/2021

Cấu trúc máy tính Chương 2 KIẾN TRÚC CƠ BẢN CỦA MÁY TÍNH 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính 1

Nội dung 2. 1. Các thành phần của máy tính 2. 2. Hoạt động

Nội dung 2. 1. Các thành phần của máy tính 2. 2. Hoạt động của máy tính 2. 3. Liên kết hệ thống 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính 2

2. 1 Các thành phần của máy tính CPU Bộ nhớ n Bộ xử

2. 1 Các thành phần của máy tính CPU Bộ nhớ n Bộ xử lý trung tâm (Central Processing Unit) n Bộ nhớ (Memory) n Hệ thống vào ra (Input/Output System) Liên kết hệ thống n Liên kết hệ thống (System Interconnection) Hệ thống vào ra 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính 3

Bộ xử lý trung tâm (CPU) n n 3/1/2021 Chức năng: n điều khiển

Bộ xử lý trung tâm (CPU) n n 3/1/2021 Chức năng: n điều khiển hoạt động của máy tính n xử lý dữ liệu Nguyên tắc hoạt động cơ bản: n CPU hoạt động theo chương trình nằm trong bộ nhớ chính. Chương 2: Kiến trúc cơ bản của máy tính 4

Cấu trúc cơ bản của CPU Đơn vị điều khiển (CU) Đơn vị số

Cấu trúc cơ bản của CPU Đơn vị điều khiển (CU) Đơn vị số học và logic (ALU) Tập các Thanh ghi (RF) Bus bên trong Đơn vị nối ghép bus (BIU) Bus bên ngoài 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính Đơn vị điều khiển (Control Unit - CU): đ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 (Arithmetic and Logic Unit ALU): thực hiện các phép toán số học và phép toán logic. Tập thanh ghi (Register File RF): lưu giữ 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 (Bus Interface Unit - BIU) kết nối và trao đổi thông tin giữa bus bên trong (internal bus) và bus bên ngoài (external bus ). 5

Tốc độ của bộ xử lý n n 3/1/2021 Tốc độ của bộ xử

Tốc độ của bộ xử lý n n 3/1/2021 Tốc độ của bộ xử lý: n Số lệnh được thực hiện trong 1 giây n MIPS (Million of Instructions per Second) n Khó đánh giá chính xác Tần số xung nhịp của bộ xử lý: n Bộ xử lý hoạt động theo một xung nhịp (Clock) có tần số xác định n Tốc độ của bộ xử lý được đánh gián tiếp thông qua tần số của xung nhịp Chương 2: Kiến trúc cơ bản của máy tính 6

Tốc độ bộ xử lý (tiếp) n Dạng xung nhịp T 0 n n

Tốc độ bộ xử lý (tiếp) n Dạng xung nhịp T 0 n n n 3/1/2021 T 0: chu kỳ xung nhịp Tần số xung nhịp: f 0 = 1/T 0 Mỗi thao tác của bộ xử lý cần k. T 0 càng nhỏ bộ xử lý chạy càng nhanh Ví dụ: Máy tính dùng bộ xử lý 2 GHz Ta có f 0 = 2 GHz = 2 x 109 Hz T 0 = 1/f 0 = 1/(2 x 109) = 0. 5 ns. Chương 2: Kiến trúc cơ bản của máy tính 7

Bộ nhớ máy tính n n n 3/1/2021 Chức năng: lưu trữ chương trình

Bộ nhớ máy tính n n n 3/1/2021 Chức năng: lưu trữ chương trình và dữ liệu. Các thao tác cơ bản với bộ nhớ: n Thao tác ghi (Write) n Thao tác đọc (Read) Các thành phần chính: n Bộ nhớ trong (Internal Memory) n Bộ nhớ ngoài (External Memory) Chương 2: Kiến trúc cơ bản của máy tính 8

Bộ nhớ trong n n 3/1/2021 Chức năng và đặc điểm: n Chứa các

Bộ nhớ trong n n 3/1/2021 Chức năng và đặc điểm: n Chứa các thông tin mà CPU có thể trao đổi trực tiếp n Tốc độ rất nhanh n Dung lượng không lớn n Sử dụng bộ nhớ bán dẫn: ROM và RAM Các loại bộ nhớ trong: n Bộ nhớ chính n Bộ nhớ cache (bộ nhớ đệm) Chương 2: Kiến trúc cơ bản của máy tính 9

Bộ nhớ chính n n 3/1/2021 Chứa các chương trình và dữ liệu đang

Bộ nhớ chính n n 3/1/2021 Chứa các chương trình và dữ liệu đang được CPU sử dụng. Tổ chức thành các ngăn nhớ được đánh địa chỉ. Ngăn nhớ thường được tổ chức theo byte. Nội dung của ngăn nhớ có thể thay đổi, song địa chỉ vật lý của ngăn nhớ luôn cố định. Chương 2: Kiến trúc cơ bản của máy tính Nội dung Địa chỉ 00101010 0000 1011 0001 11011011 0010 1100 0011 1101 0100 1011 0101 01101100 01110001 0111 0011 1000 11001010 1001 10

Bộ nhớ cache n n n 3/1/2021 Bộ nhớ có tốc độ nhanh được

Bộ nhớ cache n n n 3/1/2021 Bộ nhớ có tốc độ nhanh được đặt đệm giữa CPU và bộ nhớ chính nhằm tăng tốc độ CPU truy cập bộ nhớ Dung lượng nhỏ hơn bộ nhớ chính Tốc độ nhanh hơn Cache thường được chia thành một số mức Cache có thể được tích hợp trên chip vi xử lý Cache có thể có hoặc không Chương 2: Kiến trúc cơ bản của máy tính 11

Bộ nhớ ngoài n n 3/1/2021 Chức năng và đặc điểm n Lưu giữ

Bộ nhớ ngoài n n 3/1/2021 Chức năng và đặc điểm n Lưu giữ tài nguyên phần mềm của máy tính n Được kết nối với hệ thống dưới dạng các thiết bị vào-ra n Dung lượng lớn n Tốc độ chậm Các loại bộ nhớ ngoài n Bộ nhớ từ: đĩa cứng, đĩa mềm n Bộ nhớ quang: đĩa CD, DVD n Bộ nhớ bán dẫn: Flash disk, memory card Chương 2: Kiến trúc cơ bản của máy tính 12

Hệ thống vào/ra n Thiết bị ngoại vi Mạch ghép nối Vào/Ra Thiết bị

Hệ thống vào/ra n Thiết bị ngoại vi Mạch ghép nối Vào/Ra Thiết bị ngoại vi 3/1/2021 n n n Chức năng: Trao đổi thông tin giữa máy tính với thế giới bên ngoài. Các thao tác cơ bản: n Vào dữ liệu (Input) n Ra dữ liệu (Output) Các thành phần chính: n Các thiết bị ngoại vi (Peripheral Devices) n Mạch ghép nối vào-ra (IO Modules) Các loại thiết bị ngoại vi cơ bản n Thiết bị vào: bàn phím, chuột, máy quét. . . n Thiết bị ra: màn hình, máy in. . . n Thiết bị nhớ: các ổ đĩa. . . n Thiết bị truyền thông: MODEM. . . Chương 2: Kiến trúc cơ bản của máy tính 13

Mạch ghép nối Vào/Ra n Thiết bị ngoại vi n Mạch ghép nối Vào/Ra

Mạch ghép nối Vào/Ra n Thiết bị ngoại vi n Mạch ghép nối Vào/Ra Thiết bị ngoại vi 3/1/2021 n n Chức năng: nối ghép các thiết bị ngoại vi với máy tính Mỗi mô-đun vào-ra có một hoặc một vài cổng vào-ra (I/O Port). Mỗi cổng vào-ra được đánh một địa chỉ xác định. Các thiết bị ngoại vi được kết nối và trao đổi dữ liệu với máy tính thông qua các cổng vào-ra. Chương 2: Kiến trúc cơ bản của máy tính 14

2. 2 Hoạt động của máy tính CPU Đọc lệnh Phân tích lệnh Thực

2. 2 Hoạt động của máy tính CPU Đọc lệnh Phân tích lệnh Thực thi lệnh BỘ NHỚ CHÍNH Lưu trữ thông tin Nơi chứa chương trình để CPU đọc và thực thi Khối xuất nhập Giao tiếp với môi trường bên ngoài xuất nhập dữ liệu, bộ nhớ phụ 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính 15

Chu trình lệnh n Bắt đầu n Nhận lệnh Thực hiện lệnh Dừng 3/1/2021

Chu trình lệnh n Bắt đầu n Nhận lệnh Thực hiện lệnh Dừng 3/1/2021 Máy tính lặp đi lặp lại hai bước: nhận lệnh và thực thi lệnh. Thực hiện chương trình bị dừng nếu thực hiện lệnh bị lỗi hoặc gặp lệnh dừng. Nhận lệnh n Bắt đầu mỗi chu trình lệnh, CPU nhận lệnh từ bộ nhớ chính. n Bộ đếm chương trình PC (Program Counter) của CPU giữ địa chỉ của lệnh sẽ được nhận. n CPU nhận lệnh từ ngăn nhớ được trỏ bởi PC. n Lệnh được nạp vào thanh ghi lệnh IR (Instruction Register). n Sau khi lệnh được nhận vào, nội dung PC tự động tăng để trỏ sang lệnh kế tiếp. Chương 2: Kiến trúc cơ bản của máy tính 16

Chu trình lệnh n Bắt đầu Nhận lệnh Thực hiện lệnh Dừng 3/1/2021 Thực

Chu trình lệnh n Bắt đầu Nhận lệnh Thực hiện lệnh Dừng 3/1/2021 Thực hiện lệnh n 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. n Các kiểu thao tác của lệnh: n Trao đổi dữ liệu giữa CPU và bộ nhớ chính n Trao đổi dữ liệu giữa CPU và mạch ghép nối vào/ra n Xử lý dữ liệu: thực hiện các phép toán số học hoặc phép toán logic với các dữ liệu. n Điều khiển rẽ nhánh n Kết hợp các thao tác trên. Chương 2: Kiến trúc cơ bản của máy tính 17

Minh họa quá trình nhận lệnh CPU PC 202 IR Lệnh 200 Lệnh 201

Minh họa quá trình nhận lệnh CPU PC 202 IR Lệnh 200 Lệnh 201 Lệnh i 202 Lệnh i+1 Lệnh 3/1/2021 203 204 Lệnh 200 Lệnh 201 Lệnh i 202 IR Lệnh i+1 203 Lệnh i Lệnh 204 PC 203 Chương 2: Kiến trúc cơ bản của máy tính 18

Ngắt (Interrupt) n n 3/1/2021 Khái niệm chung về ngắt: Ngắt là cơ chế

Ngắt (Interrupt) n n 3/1/2021 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: n Ngắt do lỗi khi thực hiện chương trình, ví dụ: tràn số, chia cho 0. n Ngắt do lỗi phần cứng, ví dụ lỗi bộ nhớ RAM. n Ngắt do mạch ghép vào-ra phát tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu. Chương 2: Kiến trúc cơ bản của máy tính 19

Hoạt động ngắt n n n 3/1/2021 Sau khi hoàn thành mỗi một lệnh,

Hoạt động ngắt n n n 3/1/2021 Sau khi hoàn thành mỗi một lệnh, bộ xử lý kiểm tra tín hiệu ngắt Nếu không có ngắt bộ xử lý nhận lệnh tiếp theo của chương trình hiện tại Nếu có tín hiệu ngắt: n Tạm dừng chương trình đang thực hiện n Cất ngữ cảnh (các thông tin liên quan đến chương trình bị ngắt) n Thiết lập PC trỏ đến chương trình con phục vụ ngắt n Chuyển sang thực hiện chương trình con phục vụ ngắt n Cuối chương trình con phục vụ ngắt, khôi phục ngữ cảnh và tiếp tục chương trình đang bị tạm dừng Chương 2: Kiến trúc cơ bản của máy tính 20

Minh họa hoạt động ngắt Lệnh Ngắt ở đây Chương trình con phục vụ

Minh họa hoạt động ngắt Lệnh Ngắt ở đây Chương trình con phục vụ ngắt Lệnh i + 1 Lệnh …… Lệnh RETURN Lệnh 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính 21

Xử lý với nhiều tín hiệu yêu cầu ngắt n n 3/1/2021 Xử lý

Xử lý với nhiều tín hiệu yêu cầu ngắt n n 3/1/2021 Xử lý ngắt tuần tự n Khi một ngắt đang được thực hiện, các ngắt khác sẽ bị cấm. n Bộ xử lý sẽ bỏ qua các ngắt tiếp theo trong khi đang xử lý một ngắt n Các yêu cầu ngắt vẫn đang đợi và được kiểm tra sau khi ngắt đầu tiên được xử lý xong Các ngắt được thực hiện tuần tự n Xử lý ngắt ưu tiên n Các ngắt được định nghĩa mức ưu tiên khác nhau n Ngắt có mức ưu tiên thấp hơn có thể bị ngắt bởi ngắt ưu tiên cao hơn n Xẩy ra ngắt lồng nhau Chương 2: Kiến trúc cơ bản của máy tính 22

2. 3. Liên kết hệ thống CPU Bộ nhớ Liên kết hệ thống Hệ

2. 3. Liên kết hệ thống CPU Bộ nhớ Liên kết hệ thống Hệ thống vào ra 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính 23

Kết nối mô-đun nhớ n Địa chỉ n Dữ liệu Tín hiệu điều khiển

Kết nối mô-đun nhớ n Địa chỉ n Dữ liệu Tín hiệu điều khiển đọc Tín hiệu điều khiển ghi 3/1/2021 Mô-đun nhớ n Dữ liệu/lệnh n Địa chỉ đưa đến để xác định ngăn nhớ Dữ liệu được đưa đến khi ghi Dữ liệu hoặc lệnh được đưa ra khi đọc (lưu ý: bộ nhớ không phân biệt lệnh và dữ liệu) Nhận các tín hiệu điều khiển: n Điều khiển đọc (Read) n Điều khiển ghi (Write) Chương 2: Kiến trúc cơ bản của máy tính 24

Kết nối mô-đun vào/ra n Địa chỉ Dữ liệu đến bên trong n Dữ

Kết nối mô-đun vào/ra n Địa chỉ Dữ liệu đến bên trong n Dữ liệu đến TBNV Dữ liệu từ bên trong n Dữ liệu từ TBNV Tín hiệu điều khiển đọc Mô-đun Vào/Ra Các tín hiệu điều khiển đển TBNV n n Các tín hiệu điều khiển ngắt n Địa chỉ đưa đến để xác định cổng vào-ra Nhận dữ liệu CPU, bộ nhớ chính hay từ thiết bị ngoại vi Đưa dữ liệu vào CPU, bộ nhớ chính hay thiết bị ngoại vi Nhận các tín hiệu điều khiển từ CPU Phát các tín hiệu điều khiển đến thiết bị ngoại vi Phát các tín hiệu ngắt đến CPU Tín hiệu điều khiển ghi 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính 25

Kết nối CPU n Lệnh Dữ liệu Các tín hiệu điều khiển ngắt Địa

Kết nối CPU n Lệnh Dữ liệu Các tín hiệu điều khiển ngắt Địa chỉ Dữ liệu CPU Các tín hiệu điều khiển bộ nhớ và vào/ra n n 3/1/2021 Đọc lệnh và dữ liệu Nhận các tín hiệu ngắt Phát địa chỉ đến các mô-đun nhớ hay các mô-đun vào-ra Đưa dữ liệu ra (sau khi xử lý) Phát tín hiệu điều khiển đến các mô-đun nhớ và các môđun vào-ra Chương 2: Kiến trúc cơ bản của máy tính 26

BUS n CPU Mô-đun nhớ Mô-đun Vào/Ra n Bus địa chỉ n Bus dữ

BUS n CPU Mô-đun nhớ Mô-đun Vào/Ra n Bus địa chỉ n Bus dữ liệu Bus điều khiển 3/1/2021 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. Các bus chức năng: n Bus địa chỉ n Bus dữ liệu n Bus điều khiể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) Chương 2: Kiến trúc cơ bản của máy tính 27

Bus địa chỉ n n 3/1/2021 Chức năng: vận chuyển địa chỉ để xác

Bus địa chỉ n n 3/1/2021 Chức năng: vận chuyển địa chỉ để xác định ngăn nhớ hay cổng vào-ra Độ rộng bus địa chỉ: cho biết số lượng ngăn nhớ tối đa được đánh địa chỉ. N bit: AN-1, AN-2, . . . A 2, A 1, A 0 có thể đánh địa chỉ tối đa cho 2 N ngăn nhớ (không gian địa chỉ bộ nhớ) Ví dụ: Bộ xử lý Pentium có bus địa chỉ 32 bit có khả năng đánh địa chỉ cho 232 bytes nhớ (4 GBytes) (ngăn nhớ tổ chức theo byte) Chương 2: Kiến trúc cơ bản của máy tính 28

Bus dữ liệu n n n 3/1/2021 Chức năng: n vận chuyển lệnh từ

Bus dữ liệu n n n 3/1/2021 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 Độ rộng bus dữ liệu: Xác định số bit dữ liệu có thể được trao đổi đồng thời. n N bit: DN-1, DN-2, . . . D 2, D 1, D 0 n N thường là 8, 16, 32, 64, 128 bit. Ví dụ: Các bộ xử lý Pentium có bus dữ liệu 64 bit Chương 2: Kiến trúc cơ bản của máy tính 29

Bus điều khiển n n 3/1/2021 Chức năng: vận chuyển các tín hiệu điều

Bus điều khiển n n 3/1/2021 Chức năng: vận chuyển các tín hiệu điều khiể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 Chương 2: Kiến trúc cơ bản của máy tính 30

Một số tín hiệu điều khiển điển hình n 3/1/2021 Các tín hiệu (phát

Một số tín hiệu điều khiển điển hình n 3/1/2021 Các tín hiệu (phát ra từ CPU) điều khiển đọc-ghi: n Memory Read (MEMR): điều khiển đọc dữ liệu từ một ngăn nhớ có địa chỉ xác định lên bus dữ liệu. n Memory Write (MEMW): điều khiển ghi dữ liệu có sẵn trên bus dữ liệu đến một ngăn nhớ có địa chỉ xác định. n I/O Read (IOR): điều khiển đọc dữ liệu từ một cổng vào-ra có địa chỉ xác định lên bus dữ liệu. n I/O Write (IOW): điều khiển ghi dữ liệu có sẵn trên bus dữ liệu ra một cổng có địa chỉ xác định. Chương 2: Kiến trúc cơ bản của máy tính 31

Một số tín hiệu điều khiển điển hình n 3/1/2021 Các tín hiệu điều

Một số tín hiệu điều khiển điển hình n 3/1/2021 Các tín hiệu điều khiển ngắt: n Interrupt Request (INTR): Tín hiệu từ bộ điều khiển vào-ra gửi đến yêu cầu ngắt CPU để trao đổi vào-ra. Tín hiệu INTR có thể bị che. n Interrupt Acknowledge (INTA): Tín hiệu phát ra từ CPU báo cho bộ điều khiển vào-ra biết CPU chấp nhận ngắt để trao đổi vào-ra. n Non Maskable Interrupt (NMI): tín hiệu ngắt không che được gửi đến ngắt CPU. n Reset: Tín hiệu từ bên ngoài gửi đến CPU và các thành phần khác để khởi động lại máy tính. Chương 2: Kiến trúc cơ bản của máy tính 32

Đặc điểm của cấu trúc đơn bus n n 3/1/2021 Bus hệ thống chỉ

Đặc điểm của cấu trúc đơn bus n n 3/1/2021 Bus hệ thống chỉ phục vụ được một yêu cầu trao đổi dữ liệu tại một thời điểm Bus hệ thống phải có tốc độ bằng tốc độ bus của môđun nhanh nhất trong hệ thống Bus hệ thống phụ thuộc vào cấu trúc bus (các tín hiệu) của bộ xử lý các mô-đun nhớ và các mô-đun vào-ra cũng phụ thuộc vào bộ xử lý. Khắc phục: phân cấp bus cấu trúc đa bus Chương 2: Kiến trúc cơ bản của máy tính 33

Phân cấp bus trong máy tính n n 3/1/2021 Tổ chức thành nhiều bus

Phân cấp bus trong máy tính n n 3/1/2021 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 độ Bus bộ nhớ chính và các bus vào-ra không phụ thuộc vào bộ xử lý cụ thể. Chương 2: Kiến trúc cơ bản của máy tính 34

Các kiểu bus n n 3/1/2021 Bus dành riêng (Dedicated): n Các đường địa

Các kiểu bus n n 3/1/2021 Bus dành riêng (Dedicated): n Các đường địa chỉ và dữ liệu tách rời n Ưu điểm: điều khiển đơn giản n Nhược điểm: có nhiều đường kết nối Bus dồn kênh (Multiplexed) n Các đường dùng chung cho địa chỉ và dữ liệu n Có đường điều khiển để phân biệt có địa chỉ hay có dữ liệu n Ưu điểm: có ít đường dây n Nhược điểm: n Điều khiển phức tạp hơn n Hiệu năng hạn chế Chương 2: Kiến trúc cơ bản của máy tính 35

Phân xử bus n n 3/1/2021 Có nhiều mô-đun điều khiển bus n ví

Phân xử bus n n 3/1/2021 Có nhiều mô-đun điều khiển bus n ví dụ: CPU và bộ điều khiển vào-ra Chỉ cho phép một mô-đun điều khiển bus ở một thời điểm. n Phân xử bus có thể là tập trung hay phân tán. Phân xử bus tập trung n Có một Bộ điều khiển bus (Bus Controller) hay còn gọi là Bộ phân xử bus (Arbiter) n Có thể là một phần của CPU hoặc mạch tách rời. Phân xử bus phân tán n Mỗi một mô-đun có thể chiếm bus n Có đường điều khiển đến tất cả các môđun khác Chương 2: Kiến trúc cơ bản của máy tính 36

Định thời bus (Timing) n n n 3/1/2021 Phối hợp các sự kiện trên

Định thời bus (Timing) n n n 3/1/2021 Phối hợp các sự kiện trên bus Bus đồng bộ n Các sự kiện trên bus được xác định bởi một tín hiệu xung nhịp xác định (clock) n Bus Điều khiển bao gồm cả đường Clock n Tất cả các mô-đun có thể đọc đường clock Bus không đồng bộ n Không có đường tín hiệu Clock n Kết thúc một sự kiện này trên bus sẽ kích hoạt cho một sự kiện tiếp theo Chương 2: Kiến trúc cơ bản của máy tính 37

Hết chương 2 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính 38

Hết chương 2 3/1/2021 Chương 2: Kiến trúc cơ bản của máy tính 38