블로그 이미지
No pain, no gain!
lepoussin

Tag

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
  • total
  • today
  • yesterday
05-03 06:16
1. 메모리의 종류
  1) RAM(Random Access Memory) : 전원이 인가되는 상태에서만 데이터를 유지
    - SRAM(Static RAM) : 고속, 한 비트당 4~6개의 트랜지스터 사용
    - DRAM(Dynamic RAM) : SRAM 보다 저속, 한 비트당 1개의 트랜지스터 사용, 전원을 Refresh해줘야만 안정되게 데이터 저장
    - SDRAM(Synchronous DRAM) : DRAM을 고속으로 동작하도록 클록을 사용하여 데이터를 읽고 쓸 수 있는 인터페이스를 제공
  2) ROM(Read Only Memory)
    - ROM : 제품 생산 당시 프로그램이나 데이터가 기록되고 이후에는 변경 불가능
    - PROM(Programmable ROM) or OT-PROM (One Time PROM) : 제품 생산 당시에는 아무런 내용이 없으나 한 번만 프로그램이 가능
    - EPROM(Erasable and Programmable ROM) : 자외선 노출을 이용하여 지우고 다시 내용을 저장 가능
  3) 하이브리드 메모리
    - ROM 특성 + RAM 특성 : 전원이 없더라도 보관된 자료를 그대로 유지, 자유롭게 읽기, 지우기, 쓰기 가능
    - EEPROM (Electrically Erasable and Programmable ROM) : 내부적으로 EPROM과 비슷, 내용 삭제시 자외선 노출이 아닌 전기적인 방법으로 처리한다는 점이 다름
    - FLASH
      ⑴ NOR 타입 : 한 비트를 저장하기 위한 셀이 병렬로 연결
        - 데이터를 읽는 속도가 짧음
        - 우수한 안정성
      ⑵ NAND 타입 : 셀이 직렬로 연결
        - NOR에 비해 제조단가가 쌈
        - 대용량이 가능
    - NVRAM(Nonvolatile RAM) : SRAM + 배터리, 전원이 없는 상태에서는 배터리에 의해 데이터 저장

2. 메모리 시스템
  1) 캐시(Cache) : 프로세서에 근접하여 있는 고속의 메모리 장치
    - 프로세서에서 읽기 요청이 있을 때 최대한 빨리 명령이나 데이터를 전달해 주기 위한 고속 메모리 장치
    - 메인 메모리 액세스 감소, 프로세서에 의한 버스 사용량 감소
    ※ cache hit 비율 : 캐시메모리 내에 요구하는 명령이나 데이터가 있을 확률
    ※ cache miss : 프로세스가 요청한 명령이나 데이터가 캐시에 없을 때, 캐시 제어기가 메인 메모리에서 데이터를 읽어와 캐시의 업데이트와 함께 프로세서에 요구한 명령이나 데이터를 전달하는 것(한 번에 여러 워드의 내용을 같이 읽어옴)
    ※ 라인 사이즈(line size) : 한 번에 읽어오는 명령이나 데이터의 크기
    ※ 라인 필(line fill) : 라인 사이즈만큼 내용을 읽어 캐시에 저장하는 것
  2) MMU(Memory Management Unit)
    - 어드레스 변환 기능(가상 주소(Virtual Address) → 물리 주소(Physical Address)), 메모리 보호 기능
    ① 구동된 주소 정보가 메모리 장치로의 접근이 허용되는지를 검사
    ② 접근이 허용되면 물리 주소로 변환하여 메모리 제어기로 제어 정보와 함께 전달
  3) 메모리 제어기(Memory Controller)
    - 입력되는 주소 정보에 따라 어떤 메모리 장치를 액세스할 것인지를 결정(Address Decode)하고 각각의 메모리 장치의 특징에 따라 제어신호를 구동
    - 데이터 버스 : 프로세스와 메모리 간의 데이터 전송을 위한 선
    - 어드레스 버스 : 어떤 메모리를 대상으로 읽기 쓰기를 하는가를 나타내는 선, 프로세스 → 메모리로 일방통행
      ex) 2^10(1024) = 1KB, 어드레싱(주소의 각 영역을 구분하는 것)을 제대로 하기 위해서는 모두 10개의 신호선이 필요
    - 메모리칩 선택 신호 : CE(Chip Enable) 또는 CS(Chip Select) 신호
posted by lepoussin

1. 프로세서의 구조
  1) 레지스터(Register) : 프로세서 내부에 있는 데이터를 일시적으로 보관하는 조그만 임시 기억장치
    - 프로그램의 실행 중에 사용되며 고속으로 액세스
    - 범용 레지스터 : 사용자가 프로그램 내에서 또는 데이터 처리에 필요한 작업을 수행하기 위해서 사용
    - 제어용 레지스터 : 프로그램 카운터(PC)와 같이 프로그램이나 프로세서를 제어할 때 사용
    - 상태 레지스터 : 프로세서의 상태
    - 물리적으로 플립플롭(flip-flop)과 래치(Latch)로 구성
  2) 연산장치(ALU : Arithmetic and Logic Unit)
    - 산술, 논리, 보수, 쉬프트 연산 수행
    - 상태(status) or 플래그(flag) 레지스터 : 프로세서가 연산 장치의 연산 결과에 따른 상태와 연산 결과 표시
  3) 제어장치(CU : Control Unit) : 명령을 해석하고 그것을 실행하며, 명령을 읽고 실행하는데 필요한 프로세서 내부의 각 장치 사이의 데이터 흐름을 제어(Fetch → Decode → Execute)
    - 명령 레지스터(instruction register) : PC가 지시하는 위치의 주기억장치에서 읽어온 명령을 임시로 기억
    - 명령 해독기(instruction decoder) : 명령 레지스터에 기록되어 있는 명령을 받아서 해독
    - 제어신호 발생기 : 명령 해독기에서 발생된 제어신호에 따라 명령어를 실행
  4) 프로세서의 내부 버스
    - 여러 장치들을 연결하는 경로
    - 레지스터의 뱅크 ↔ 연산장치

2. 프로세서의 종류
  - i386
  - ARM
  - MIPS
  - PowerPC
  - M68K

3. 프로그램과 명령
  ※ 프로그램 : 프로세서를 통하여 어떤 결과를 얻기 위해 프로세서가 받아들일 수 있는 형태의 명령을 나열하여 구성한 문장
  ※ 기계어(Machine Language) : 프로세서가 이해할 수 있는 2진수로 표현한 언어
  1) 명령
    - 명령어 : Operation code와 Operand로 구성
    - 명령어 처리 과정
      ① Fetch : PC → AR → IR
      ② Decode : IR 내에 있는 명령어를 해독하여 적절한 제어신호를 연산장치, 메모리 등에 전송
      ③ Execute
        - 연산장치를 사용하는 명령어(ALU instruction)인 경우 : 연산 결과를 명령어에 명시한 레지스터에 저장
        - 조건 분기 명령어(conditional branch instruction)인 경우 : 조건을 만족하면 PC의 내용을 분기 주소로 변경
        - 무조건 분기 명령어(unconditional branch instruction)인 경우 : PC의 내용을 분기 주소로 바꾼다.
        - 메모리 참조 명령어(memory reference instruction)인 경우 : 참조하고자 하는 메모리의 주소를 데이터용 AR로 보낸 후 메모리의 내용을 데이터 입력 레지스터로 읽어들여 명령어에 지정된 레지스터로 저장
      ④ 명령어 실행후 조건 분기 명령어 혹은 무조건 분기 명령어가 아니면 PC를 다음에 수행해야 할 주소로 바꾼 후(PC ← PC + 명령어의 길이), 다음 명령 처리
    2) 명령어와 프로세서 구조
      - CISC(Complex Instruction Set Computer)
        ⑴ 명령어의 수가 많다(보통 120~350개)
        ⑵ 명령어 중에는 특별한 일을 하는 것도 있다.
        ⑶ 주소지정 방식이 다양하다(8~24).
        ⑷ 명령어의 길이가 가변적이다.
        ⑸ 명령어 중에는 기억장치 내의 피연산자를 처리하는 것도 있다.
      - RISC(Reduced Instruction Set Computer)
        ⑴ 명령어 수를 최소화하여 시스템을 작고 빠르게 한다.
        ⑵ 명령어와 주소지정 방식을 최소화하여 제어장치 구조를 간단하게 구현한다.
        ⑶ 명령어의 길이가 고정되어 해독하기 쉽고 파이프라인 구성이 쉽다.
        ⑷ 기억 장치에 대한 접근은 Load/Store 명령에 제한, 이 두 명령을 제외한 나머지 연산은 모두 한 사이클에 처리된다.
      -  EISC(Extensible Instruction Set Computer)
        ⑴ operand 부분을 opcode와 독립적으로 구성하여 opcode가 필요로 하는 길이만큼 operand를 확장하도록 하는 명령어 구조 체계
        ⑵ 확장 레지스터(ER : Extension Register)와 확장 플래그(E : Extension flag) 도입하여 고정 길이의 명령어를 사용하면서 이와 같은 구조의 새로운 명령어 체계를 구현

posted by lepoussin

1. 임베디드 시스템이란?
프로세스, 메모리 장치, 각종 입출력 장치와 같은 하드웨어와 그 하드웨어를 제어하기 위한 소프트웨어가 조합되어 특정한 기능을 수행하는 시스템

2. 임베디드 시스템의 특징
  - 소형, 경량, 저전력, 안정성 및 가격
  - 실시간(Real-time)성

3. 임베디드 시스템의 구성
  - 하드웨어 : 프로세서, 메모리 장치, 입출력 장치
  - 소프트웨어 : 운영체제, 시스템 소프트웨어(디바이스 제어 프로그램), 응용 소프트웨어

posted by lepoussin