개발새발

Professor 본문

임베디드시스템

Professor

비숑주인 2024. 9. 25. 12:58

C의 작동 과정

 

compiler pre-processing:  컴파일 전 단계에서, 소스 코드에서 오류를 잡아냄. 특히, 매크로, 헤더 파일 포함 여부 등 전처리 작업 수행.

컴파일을 하면 실행 파일 생성->하드 디스크에 저장 된다. 

더블 클릭 시 os 개입-> 메인 메모리 -> 프로세서 

assembly language: 컴퓨터가 이해하기 전 단계의 언어

assembler: 어셈블리 언어를 0과 1로 구성된 기계어(Binary Code)로 변환하는 프로그램.

 

compiler system

pre-processor: 의도와 다른 신텍스 에러 등의 오류가 존재하는지 확인

compiler: 소스 코드를 어셈블리 언어로 변환함.

assembler: 어셈리 언어를 기계어로 변환하여 바이너리 코드로 만듦.

linker: 여러 오브젝트 파일과 라이브러리를 결합하여 최종 실행 파일을 생성하는 과정에서 오류가 자주 발생할 수 있음.

static linking 실행 가능한 파일 크기가 커짐. 어느 컴퓨터든 isa만 맞으면 사용 가능

 

하드웨어 구조(I/O devices)

 

 

I/O bus

컴퓨터의 여러 하드웨어 구성 요소들 간의 데이터를 주고받기 위한 인터커넥션(Interconnection) 역할을 함.

하나의 비트를 다른 곳으로 보내기 위해 최소 하나의 wire 가 필요하다

 

하나의 비트를 전송하기 위해 최소 하나의 와이어가 필요하고, 실제로는 8바이트 또는 16바이트 단위로 데이터를 전송한다. 

bus는 실제로 8byte, 16byte 정도

 

main memory 

실행 파일이 먼저 로드되는 공간으로, 하드 디스크보다 속도가 빠름.

 

CPU

컴퓨터의 두뇌 역할을 하며, 계산된 결과를 저장하고 연산을 수행함.

 

program

01의 시퀀스는 2nd 저장장치(하드 디스크 등)에 저장되어 있

 

ISA(Instruction Set Architecture)

 

  • Load: 데이터를 메모리에서 가져옴.
  • Store: 데이터를 메인 메모리에 저장.
  • Operate: 연산을 수행.
  • Jump: 프로그램 실행 순서를 변경함.

 

 

 

마이크로아키텍처(Microarchitecture)

  • 같은 결과를 내는 다양한 방식의 하드웨어 구현을 허용하며, 이를 결정하는 것이 아키텍처 설계.

프로그램 카운터(PC)

  • 프로그램이 실행되는 동안 다음 명령어의 메모리 주소를 가리킴. 실행될 때마다 CPU의 프로그램 카운터 값이 달라짐.

 

 

 

big and little core

 

CPU 아키텍처

  1. SMP(Symmetric Multiprocessors)
    • 여러 개의 CPU가 동일한 형태로 구성되어 동시 처리 능력을 향상시킴.
  2. 벡터 아키텍처(Vector Architectures)
    • 데이터를 벡터 레지스터(Vector Register)에 읽어들여 병렬 연산을 수행하며, 컴파일러가 이를 제어함.
  3. ALU(Arithmetic Logic Unit)
    • 덧셈, 뺄셈 등의 사칙 연산을 수행하는 계산 장치.
    • 메모리 대역폭을 최대한 활용하여 연산 성능을 극대화함.

 

GPU (Graphics Processing Unit)

  1. GPU 구조
    • GPU는 수많은 간단한 연산을 동시에 수행하는 병렬 처리 장치로, 많은 스레드를 이용해 계산 작업을 처리함.
    • GPU는 CPU와 버스를 통해 연결되며, 조립 시에는 PCI 슬롯에 연결하여 사용.
  2. Host와 Device
    • 일반적으로 CPU는 Host, GPU는 Device로 구분되며, CPU가 작업을 분배하고 GPU가 연산을 수행함.

개발 환경

  1. Local Development
    • 로컬 컴퓨터에서 개발 및 컴파일을 수행.
  2. Remote Development
    • 서버에 코드를 업로드하여 원격 기기에서 컴파일 및 실행.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'임베디드시스템' 카테고리의 다른 글

Image Blur (GPU)  (0) 2024.10.23
Image Blur(CPU)  (6) 2024.10.17
GPU  (0) 2024.10.02
CUDA  (0) 2024.09.26
Linux  (4) 2024.09.11