Tìm hiểu khái niệm cơ bản về tổ chức, kiến trúc máy tính và các thuật ngữ liên quan | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Tìm hiểu khái niệm cơ bản về tổ chức, kiến trúc máy tính và các thuật ngữ liên quan

Chia sẻ kiến thức 04/03/2022

Để trở nên chuyên nghiệp trong lĩnh vực máy tính ngày nay, bạn cần hiểu rõ về tổ chức và kiến trúc máy tính để có thể xây dựng các chương trình chạy hiệu quả. Đây đều là những thuật ngữ quan trọng mà bạn cần nắm khi mô tả về một hệ thống máy tính.

>> Dữ liệu là nguyên liệu của máy tính

1. Tổ chức máy tính (TCMT) và kiến trúc máy tính (KTMT) là gì?

Tổ chức máy tính (Computer Organization) là khái niệm liên quan đến các khối chức năng và sự liên kết giữa chúng để thực hiện các các tính năng kiến trúc, bao gồm: tín hiệu điều khiển, giao tiếp giữa máy tính và thiết bị ngoại vi, công nghệ bộ nhớ,… Hiểu theo cách đơn giản, TCMT là cách các bộ phận cấu thành của hệ thống cùng kết nối và hoạt động với nhau để thực hiện kiến trúc tập lệnh.

Kiến trúc máy tính (Computer Architecture) là thuật ngữ chỉ việc lựa chọn, kết nối các thành phần phần cứng một cách khoa học giúp tạo nên các máy tính đáp ứng được yêu cầu về chức năng, hiệu suất và giá cả. 

Nhìn chung, TCMT và KTMT khác nhau về nhiều điểm cơ bản nhưng hai yếu tố này luôn có một mối quan hệ với nhau trong một hệ thống máy tính. Do đó, việc thay đổi về công nghệ không chỉ ảnh hưởng đến tổ chức mà còn làm cho kiến trúc phức tạp và trở nên hiệu quả hơn. Trong những phần dưới đây, chúng ta sẽ cùng tìm hiểu về các khái niệm cơ bản của những yếu tố thuộc kiến trúc trong một hệ thống máy tính.

Sơ đồ khái quát kiến trúc máy tính
Sơ đồ khái quát kiến trúc máy tính.

2. Chương trình lưu trữ

Chương trình lưu trữ (CTLT) được thiết kế với nhiều đặc điểm kiến ​​trúc khác nhau. Chúng được gắn vào ổ cứng BIOS làm gián đoạn, chặn việc đọc – ghi từ các chương trình ứng dụng và trình điều khiển thiết bị. Nếu một chương trình ứng dụng muốn đọc dữ liệu từ ổ cứng, CTLT sẽ cho chặn yêu cầu đọc, chuyển nó đến bộ điều khiển ổ cứng sau đó lưu dữ liệu đã đọc từ ổ đĩa vào bộ nhớ đệm trước đó và bước cuối cùng là chuyển dữ liệu trở về cho chương trình ứng dụng. 

Trong trường hợp các ứng dụng muốn đọc nhiều dữ liệu hơn, CTLT sẽ chặn đứng yêu cầu và xem xét liệu dữ liệu đó còn trong bộ nhớ đệm hay không bằng cách khảo sát các bộ nhớ đệm của chúng. Nếu còn dữ liệu, chương trình sẽ chuyển chúng  trở lại từ bộ nhớ đệm đến các ứng dụng và không thông qua thao tác ổ cứng nào khác. Cách thức này sẽ đẩy truy cập đi một cách nhanh chóng, do đó, nó có thể ảnh hưởng lớn đến các phép đo hiệu suất ổ đĩa.

3. Kiến trúc mã hóa 

Kiến trúc mã hoá (hay giải mã) là một khuôn mẫu thiết kế mạng nơ-ron, được sử dụng với mục đích xử lý ngôn ngữ tự nhiên. Kiến trúc máy tính này bao gồm 2 phần: bộ mã hoá và bộ giải mã. Bộ mã hoá có vai trò trong việc mã hoá đầu vào thành trạng thái chứa tensor. Trạng thái này sẽ được truyền vào bộ giải mã để sinh đầu ra. Trong đó:

– Bộ mã hóa: một mạng nơ-ron ở dạng thông thường và có chức năng nhận đầu vào và trả về đầu ra. Đầu vào này có thể là một câu nguồn như ví dụ dưới đây.

from mxnet.gluon import nn

# Saved in the d2l package for later use

class Encoder(nn.Block):

    “””The base encoder interface for the encoder-decoder architecture.”””

    def __init__(self, **kwargs):

        super(Encoder, self).__init__(**kwargs)

    def forward(self, X, *args):

        raise NotImplementedError

– Bộ giải mã: thành phần này có thêm phương thức init – state với vai trò phân tích đầu ra được bộ mã hoá trả về. Quá trình phân tích này là việc bổ sung thông tin về độ dài hợp lệ của đầu vào để đưa ra trạng thái cần thiết. Như vậy, bộ giải mã sẽ nhận hai đầu vào, một câu đích và một trạng thái. Dưới đây là ví dụ về mô hình bộ giải mã.

# Saved in the d2l package for later use

class Decoder(nn.Block):

    “””The base decoder interface for the encoder-decoder architecture.”””

    def __init__(self, **kwargs):

        super(Decoder, self).__init__(**kwargs)

    def init_state(self, enc_outputs, *args):

        raise NotImplementedError

    def forward(self, X, state):

        raise NotImplementedError

4. Biểu diễn toán hạng

Biểu diễn toán hạng sẽ được tập trung chủ yếu vào loại cơ bản như sau:

4.1. Toán hạng thanh ghi (Register Operands)

Khác với các chương trình được xây dựng trong ngôn ngữ cấp cao, toán hạng của các lệnh số học thường bị hạn chế. Chúng đều phải đặt trong các vị trí đặc biệt và được xây dựng trực tiếp trong phần cứng được gọi là thanh ghi (thường được giới hạn ở mức 32 thanh ghi trên các loại máy tính hiện nay).

Các thanh ghi trong MIPS
Các thanh ghi trong MIPS

4.2. Toán hạng bộ nhớ (Memory Operands)

Trong các thanh ghi, vi xử lý chỉ được lưu giữ một lượng nhỏ dữ liệu. Trong khi đó, bộ nhớ máy tính có thể chứa hàng triệu dữ liệu. Đặc biệt, với lệnh MIPS, các phép tính số học chỉ xảy ra trên thanh ghi. Chính vì lý do đó, MIPS phải có các lệnh nhằm chuyển dữ liệu giữa bộ nhớ và thanh ghi. Lệnh này được gọi là lệnh chuyển dữ liệu. Trong đó:

  • Lệnh chuyển dữ liệu từ bộ nhớ vào thanh ghi được gọi là nạp lw ( load word) và có định dạng là lw $s1,20($s2).
  • Lệnh chuyển dữ liệu từ thanh ghi ra bộ nhớ được gọi là lệnh lưu sw (store word). Định dạng của nó là sw $s1,20($s2).

Lưu ý: Để truy cập vào bộ nhớ, các lệnh phải cung cấp địa chỉ bộ nhớ. Địa chỉ là một giá trị sử dụng để phân định vị trí của một phần tử dữ liệu cụ thể trong một mảng bộ nhớ đó.

4.3. Toán hạng hằng (Constant or Immediate Operands)

Toán hạng này chỉ một hằng số hay một số tức thời (constant/immediate number) có thể được sử dụng trong trong một phép toán. Ví dụ:

addi $s3, $s3, 4 # $s3 = $s3 + 4

Bài viết này đã cung cấp những kiến thức khái quát về tổ chức và kiến trúc máy tính. Hy vọng qua bài viết, bạn đọc có thể nắm vững được những khái niệm liên quan trong hệ thống máy tính để xây dựng các chương trình chạy hiệu quả hơn. 

Phạm Thị Thanh Ngọc

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại