한국   대만   중국   일본 
마이크로프로세서 - 위키百科, 우리 모두의 百科事典 本文으로 移動

마이크로프로세서

위키百科, 우리 모두의 百科事典.

인텔 4004 는 最初의 一般用, 常用 마이크로프로세서이다.

마이크로프로세서 ( 英語 : microprocessor, microprocessing unit ) 또는 超小型 演算 處理 裝置 (超小型演算處理裝置)는 컴퓨터 中央 處理 裝置 (CPU)를 말한다. 機械語 코드를 實行하기 위해 實行過程을 段階別로 나누어 處理를 위한 마이크로 코드 를 作成하고, 이 마이크로 코드에 依해 段階的으로 處理하는 論理回路를 말한다. [1] 初期의 마이크로프로세서는 하나의 칩으로 만들어졌으나, 漸漸 다른 하드웨어 要素들을 集積시키는 傾向이 있다. 따라서 CPU-코어라는 말로 다른 要素들과 區別한다. 中央 處理 裝置 (CPU)가 컴퓨터 全體 시스템의 位置와 立場에서 나온 말이라면, 마이크로프로세서는 動作 方式에서 나온 말로 서로 같은 것이다.

마이크로프로세서 開發者는 機械語 設計를 하고, 機械語를 遂行하기 위해 마이크로코드 를 作成한다. 機械語를 分類하여 共通點을 찾아내어 한個의 機械語 코드가 實行되는 過程을 段階別로 機能的 블럭으로 나눈다. 마치 C言語의 函數처럼 機能別로 作成 한다. 이것을 디지털回路와 結合하여 動作을 하게 된다. 마이크로코드는 마이크로프로세서 內의 마스크 롬 에 貯藏되고 使用者는 變更할 수 없다. 마스크 ROM마이크로코드 變更이라는 것은 곧 機械語 코드 變更을 의미하기 때문이다. ROM에 貯藏 된 定해진 코드는 마이크로프로세서의 立場에서는 負擔이 될 수 있다. 고 機能이라면 크게 神經 쓸 일은 아니지 低速, 低電力 等에서는 神經 쓸 일이다. 따라서 마이크로코드 自體를 論理回路로 對處하는 境遇도 있다. NMOS 6502 英語 : ( MOS Technology 6502 ) 나 一部의 RISC 마이크로프로세서는 PLA와 順次 論理回路(하드웨어 方式)로 大體 한다. [2]

마이크로프로세서는 컴퓨터의 CPU의 機能을 한 개 또는 몇 個 以內의 集積回路에 集約한다. [1] 마이크로프로세서는 디지털 데이터를 入力받고, 메모리에 貯藏된 指示에 따라 그것을 處理하고, 結果를 出力으로 내놓는 多目的의 프로그램 可能한 機器이다. 內藏메모리가 있다는 點에서 順次 論理의 例이다. 마이크로프로세서는 2進數로 대표되는 數字와 記號를 바탕으로 作動한다.

한 개 또는 少數의 칩에 全體 CPU를 集積하는 것은 處理 戰力의 費用을 相當히 줄였다. 集積回路 프로세서는 高度로 自動化된 過程에 따라 大量生産되기 때문에, 生産 費用이 적다. 單一 칩 프로세서는 誤謬가 發生할 可能性이 있는 電氣 配線의 數가 매우 적기 때문에, 信賴性이 올라간다.

마이크로프로세서 以前의 작은 컴퓨터들은 中間 規模나 小規模 集積回路의 基板에 납땜을 利用해서 主로 만들어졌다. 마이크로프로세서는 이것을 한 個나 少數의 大規模 集積回路에 集積시켰다. 마이크로프로세서의 繼續된 容量의 增加는 다른 種類의 컴퓨터들을 거의 舊式으로 만들어버렸고, 現在는 가장 작은 임베디드 시스템이나 携帶用 機器에서부터 가장 큰 메인프레임이나 슈퍼컴퓨터에까지 쓰이고 있다.

歷史 [ 編輯 ]

"마이크로프로세서"라는 用語를 처음 使用한 것은 1968年 發表된 시스템 21 小型 컴퓨터 시스템에 쓰인 맞춤式 集積 回路를 說明한 비아트론 컴퓨터 시스템즈 이다.

1971年에 인텔은 레슬리 倍다스 의 監督 下에 最初의 4비트 마이크로프로세서 4004를( 인텔 4004 ), 1972年에 8비트 마이크로프로세서 8008을 선보였다. 最初의 마이크로프로세서는 一般 컴퓨터의 中央處理裝置에서 主記憶裝置를 除外한 演算裝置, 制御裝置 및 各種 레지스터들을 團地 1個의 IC 素子에 集積시킨 것이다.

오늘날은 이를 흔히 MPU ( m icro p rocessing u nit)라고 부르기도 한다.

槪要 [ 編輯 ]

用途에 따라 입·出力 等의 周邊 回路나 메모리를 內藏한 것도 있어서 하나의 LSI 또는 컴퓨터 시스템으로서 動作하는 것을 ‘원칩 마이크로컴퓨터’라고 부른다. 마이크로프로세서는 하나의 LSI칩으로 機能을 遂行할 수도 있지만 여러 個의 LSI로 構成된 것도 存在한다.

마이크로프로세서가 開發되기 以前까지 CPU는 眞空管 이나 트랜지스터 와 같은 單獨 素子로 構成되거나 集積回路 가 開發되고 나서도 많은 集積回路의 編成으로서 構成되어 왔었다. 集積回路의 規模가 커지고 많은 回路를 揷入할 수 있는 技術이 登場해 하나의 大規模 集積回路에 CPU 機能을 遂行할 수 있게 되었다. 이에 따라 生産과 利用이 便利하게 되고 大量 消費가 可能해짐에 따라 性能은 增加하고 價格도 漸次 떨어져 갔다.

인텔 고든 무어 가 1965年에 約 18個月마다 2倍가 된다고 하는 ‘ 무어의 法則 ’을 내놓은 뒤 오늘에 이르기까지 이 法則에 따라 마이크로프로세서의 性能은 繼續 向上되고 있다. 現在 마이크로프로세서는 슈퍼 컴퓨터 부터 小型 노트북 컴퓨터 까지 다양한 種類의 컴퓨터에 搭載되고 있다.

마이크로프로세서의 構成 [ 編輯 ]

마이크로프로세서는 制御裝置(命令語 解釋 및 實行), 레지스터, ALU等의 基本 構成을 갖는다.

  • 制御裝置(命令語 解釋 및 實行) : 마이크로코드의 實行에 依해 메모리의 機械語 코드를 읽고, 어떤 機能인지를 決定한 다음 該當 機能을 實行한다.
  • 레지스터
    • 汎用 레지스터 : 데이터 處理를 위해 데이터를 貯藏한다.
    • 特需 레지스터 : 特殊 機能을 위해 設定된 레지스터이다. 레지스터의 機能이 決定되어 있다.
      • SP (Stack Pointer) : 스택 構造를 위한 포인터이다. 普通 push에 依해 데이터가 貯藏될 때, 메모리의 住所가 減少하는 것이 一般的이다. 8051은 反對로 增加한다. PUSH, POP 等의 스택 命令語와 CALL/RET에 依한 復歸住所가 貯藏된다. 액세스 單位는 8비트 마이크로프로세서는 8비트 單位로 32비트 CPU에서 32비트 單位가 基本 單位이다.
      • PC (Program Counter) 또는 IP(Instruction Pointer) : 實行해야 하는 機械語 命令語가 存在하는 메모리 住所값을 貯藏한다. 따라서 이 레지스트의 값에 依해 機械語 命令語가 패치 되어 읽혀 命令語 解釋되어 實行된다.
      • 인덱스 레지스터 : 데이터를 處理할 住所값을 貯藏한다. 이 레지스터 값을 데이터 액세스할 때 住所값으로 活用한다. 데이터 포인터를 貯藏하는 레지스터이다.
      • FLAG, 인터럽트 制御, 狀態 貯藏, CPU 制御, 기타를 貯藏하는 레지스터.
  • 정수형 算術 論理 裝置 (ALU) : 數學演算, 論理演算, 쉬프트 等의 數學的 演算을 擔當한다.
    • 四則演算  : 더하기, 빼기, 나누기, 곱하기를 한다. 정수형 ALU가 大部分이고, 基本이기 때문에 나누기 時 몫과 나머지로 處理되어 結果가 나오고 이것은 2個의 레지스터에 나누어 貯藏된다.
    • 論理 演算  : 비트別로 AND, OR, XOR, NOT 等의 論理演算을 實行한다.
    • 쉬프트 演算  : 레지스터의 값을 왼쪽 또는 오른쪽으로 移動 시킨다. 普通 C(Carry)와 結合하여 實行되는 境遇도 있다.
  • FLAG : ALU에서 實行된 結果와 함께 여러 가지 補助結果를 貯藏한다.
    • C (Carry) : 年産結果 MSB의 비트에서 發生하는 올림 또는 빌림의 結果를 貯藏한다.
    • N (Negative, 또는 S (Sign)) : 정수형 表現에서 陰數를 나타내는 비트인 MSB가 1인 境遇를 나타낸다.
    • Z (Zero) : 年産結果 모든 비트가 0임을 나타낸다.
    • O (Overflow) : 年産結果 定해진 비트數를 벗어나 數字가 變形된 狀態를 나타낸다.

初期에는 위의 要素로 構成 된 마이크로프로세서가 하나의 칩으로 만들어졌다. 그러나 마이크로컨트롤러 (MCU)等이 나오면서 마이크로프로세서와 메모리 其他 컴퓨터를 이루는 要素들이 합쳐지기 始作했다. 8051等의 마이크로컨트롤러와 ARM 等이 그렇다. 따라서 한 칩에 마이크로프로세서 뿐만 아니라 其他 要素를 區分할 必要가 생긴다. 初期의 마이크로프로세서 모듈 만을 CPU 코어라는 말을 使用하기도 한다.

救助 [ 編輯 ]

마이크로프로세서 內部의 配列은 設計된 時期나 使用되는 目的에 따라 다양하다. 集積回路의 集約性은 한 個의 칩에 集積될 수 있는 트랜지스터 의 個數, 連結 될 수 있는 配線의 個數, 칩이 견딜 수 있는 熱意 限界 等에 따라 決定된다. 發展하는 技術은 더 複雜하고 强力한 칩을 生産 할 수 있게 만든다.

假想의 最小限의 마이크로프로세서는 算術論理裝置(ALU)와 制御 論理 섹션만을 包含할 수 있다. ALU는 덧셈, 뺄셈, 그리고 AND나 OR같은 演算을 遂行한다. ALU의 各各의 演算은 狀態 레지스터에 플래그를 모아서 마지막 演算의 結果를 標示한다. 制御 論理 섹션은 메모리로부터 指示 演算 코드를 되찾고, ALU의 演算의 結果가 實行하라고 하는 어떤 指示던지 實行한다. 한 個의 演算 코드는 經路, 레지스터, 그리고 프로세서의 다른 要素들에게 影響을 끼칠 수 있다.

集積回路 技術이 發展하면서, 한 個의 칩에 漸漸 더 複雜한 프로세서를 生産할 수 있게 된다. 데이터 客體의 크기는 漸漸 더 커져지고, 칩에 더 많은 트랜지스터가 包含되는 것은 4비트나 8비트의 워드를 오늘날 64비트까지 늘릴 수 있게 한다. 프로세서 아키텍처에 追加的인 特徵이 생겼다. 더 많은 溫칩 레지스터는 프로그램의 速度를 높이고, 複雜한 命令은 더 精巧한 프로그램을 可能하게 한다. 例를 들어, 浮動小數點 연산은 8비트 마이크로프로세서에서는 可能하지 않았고, 소프트웨어 안에서만 實行되어야 했다. 浮動小數點 유닛의 集積은 처음엔 分離된 集積回路에서 實現된 後에 單一 마이크로칩에서 實現되었고, 浮動小數點의 演算의 速度를 높였다.

가끔, 集積回路의 物理的인 限界가 비트 슬라이스 接近法 같은 實行이 必要하게 만든다. 긴 워드를 한 個의 集積回路에서 處理하는 代身에, 여러 個의 回路에서 各各의 데이터 워드를 竝列로 處理하는 方式이다. 이 方式이 追加的인 論理를 處理해야 하지만, 例를 들어, 各各의 슬라이스에서 올림이나 오버플로 같은, 卽 各各 4비트밖에 안 되는 集積回路가 32비트의 워드를 處理할 수 있게 한다. 한 個의 칩에 많은 數의 트랜지스터를 集積시키는 能力은 프로세서로서 한 個의 같은 다이에 메모리를 集積시키는 것을 可能하게 한다. 이 CPU 캐시는 오프칩 메모리보다 더 빠른 接近이 可能하다는 長點이 있고 시스템의 處理 速力을 增加시킨다. 最近을 除外하고는 프로세서의 클럭 數의 增加速度는 外場 메모리의 그것보다 더 빨랐고, 따라서 더 느린 外場 메모리가 프로세서를 遲延시키지 않으려면 캐시 메모리가 必要하다.

특수한 目的의 設計 [ 編輯 ]

마이크로프로세서는 汎用 시스템이다. 여러 個의 特化된 處理機器가 技術을 따라 發展해왔다. 마이크로컨트롤러는 임베디드 시스템에 枝葉的인 機器와 마이크로프로세서를 集積시켰다. DSP는 信號處理에 特化되어있다. GPU는 없거나 制限되거나 아주 一般的인 프로그래밍 機能이 있다. 例를 들어 1990年代의 GPU는 大部分 프로그래밍이 不可能하거나 最近에 와서야 프로그램 可能한 버텍스 셰이더같은 制限된 機能이 생겼다.

32비트 프로세서는 더 많은 디지털 論理를 가지고 있고, 더 많은 디지털 노이즈를 發生시키며, 더 높은 政敵 消費電力을 가지고 있다. [3] 그래서 8비트나 16비트 프로세서가 32비트 프로세서보다 單一 칩 시스템이거나, 極히 低電力을 要求하는 境遇가 많으며 高解像度 아날로그 디지털 信號 變換器와 같은 노이즈에 敏感한 溫칩 아날로그 電子機器에 包含되는 混合 信號 集積回路의 部分으로서는 더 적합하다.

비슷한 工程으로 生産될 때, 8비트 마이크로프로세서는 32비트 마이크로프로세서보다 作動할 때나 作動하지 않을 때 더 적은 電力을 消費한다.

하지만, 一部는 浮動小數點 演算같은 作業에서 32비트 마이크로프로세서보다 8비트 프로세서가 더 많은 클럭의 回轉을 하기 때문에, 平均的으로 8비트 프로세서가 더 많은 電力을 消費한다고 한다.

마이크로프로세서 動作 [ 編輯 ]

動作 週期에 依한 마이크로프로세서 動作 [ 編輯 ]

컴퓨터가 動作한다는 말은 곧 마이크로프로세서가 連續的으로 命令 周忌 를 反復하여 機械語 코드를 實行한다는 말과 같다. 프로그래밍에 依해 만들어진 메모리 속의 機械語 코드를 實行함으로써 컴퓨터가 使用者가 願하는 機能을 遂行한다.

마이크로프로세서 動作 모드 [ 編輯 ]

權限 水準 [ 編輯 ]

運營 體系 를 設計할 때, 마이크로프로세서가 應用 프로그램 實行인지 시스템 實行인지에 따라 特定 機能을 制約할 수 있다. 例를 들어 커널 을 動作 시킬 때 모든 機械語 命令은 動作하나, 使用者 모드에서 하드웨어 關聯 機械語 命令은 制限할 수 있다.

動作 모드 :

  • 슈퍼바이저 모드 : 全員이 認可되고 리셋 信號가 오거나 例外狀況(인터럽트 等)이 發生하면 이 動作 모드로 轉換된다. 運營 體制의 커널 實行이 代表的 모드이다. 使用者의 要請에 依한 應用 프로그램을 實行할 때는 커널이 使用者 모드로 轉換하면서 應用 프로그램用 機械語 코드를 實行한다.
  • 使用者 모드( 使用者 空間 ) : 使用者의 要請에 依해 實行되는 應用 프로그램 實行 時 作動하는 모드이다. 컴퓨터 시스템은 여러個의 프로세서 가 動作하는 것이 一般的이기 때문에, 各 應用 프로그램을 時間을 分割하여 實行할 必要가 있다. 어느 한 프로세서가 動作하다가 워치독 타이머 나 기타에 依한 인터럽트에 依해 프로세서가 强制 終了되어 커널(슈퍼바이저 모드)로 轉換된다. MMU 가 存在하는 컴퓨터 시스템에서는 應用 프로그램이 이 機能을 使用하기 때문에 메모리 액세스 할 때 動作한다.

各 마이크로프로세서마다 區別되는 方式은 差異가 있다. x86 系列은 0,1,2,3 等 4段階의 링 構造로 되어 있고, 68000 系列은 두 段階로 나누어 있다.

아이들 모드 [ 編輯 ]

마이크로프로세서가 特定 일을 할 必要가 없거나, 全員 等의 理由로 動作을 멈추었다가 必要할 때 動作을 재게할 수 있도록 할 수 있다. 마이크로프로세서가 動作을 멈추는 狀態를 아이들 모드(idle mode) 또는 슬립 모드(sleep mode)라고 한다. 이 모드 狀態가 되면 最低 電力이 使用된다. 普通 하드웨어로 깨울 수 있는 方式을 많이 使用한다. 이 모드로 轉換을 위해 機械語 命令이 提供된다. 境遇에 따라 마이크로프로세서에서 使用하는 클럭 回路도 制御할 수 있다.

임베디드 애플리케이션 [ 編輯 ]

傳統的으로는 컴퓨터와 關聯되어 있지 않은 수많은 製品들이 마이크로프로세서를 包含한다. 이것들은 크거나 작은 家電製品, 次, 車키, 工具와 테스트 機器, 장난감, 電燈 스위치나 電氣回路 遮斷器를 包含한다. 携帶폰, dvd비디오 시스템, hdtv放送시스템 같은 것들은 基本的으로 强力하고 低費用人 마이크로프로세서를 必要로 한다. 最近에 嚴格해진 環境 汚染 統制 基準은 自動車의 다양한 走行 狀況에 對應하여 最適의 排出 調節을 위해 마이크로프로세서 엔진 管理 시스템을 要求한다.

마이크로프로세서 컨트롤 프로그램(임베디드 소프트웨어)는 製品의 再設計를 最少化하면서 性能의 업그레이드를 시키면서, 製品 라인의 다양한 要求에 맞춰 設計될 수 있다.

시스템의 마이크로프로세서 컨트롤은 電子機械컨트롤이나 目的이 定해진 電子 制御器는 不可能한 制御 戰略을 提供한다. 例를 들어 自動車의 엔진 管理 시스템은 엔진의 速度나 負擔, 內部의 溫度, 그리고 다른 狀況의 情報에 맞춰서 自動車가 燃費에 맞게 走行할 수 있도록 點火타이밍을 調節 할 수 있다.

같이 보기 [ 編輯 ]

各州 [ 編輯 ]

  1. Osborne, Adam (1980). 《An Introduction to Microcomputers》. Volume 1: Basic Concepts 2板. Berkely, California: Osborne-McGraw Hill. ISBN   0-931988-34-9 .  
  2. “Breaking 6502 apart” . 2015年 6月 20日에 確認함 .  
  3. Kristian Saether, Ingar Fredriksen. "Introducing a New Breed of Microcontrollers for 8/16-bit Applications" . p. 5.

外部 링크 [ 編輯 ]