Notice
Recent Posts
Recent Comments
«   2024/12   »
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
Archives
Today
Total
관리 메뉴

SYDev

[컴퓨터 구조] Lecture 08: Instructions - Language of the Computer 본문

3학년 1학기 전공/컴퓨터 구조

[컴퓨터 구조] Lecture 08: Instructions - Language of the Computer

시데브 2024. 4. 13. 01:25
경희대학교 컴퓨터공학부 김정욱 교수님의 컴퓨터 구조 강의 내용을 기반으로 한 정리글

 

 

Translating and Starting a Program

 

Compiler

  • C program -> Assembly language program
  • 1970, 1980년대에는 많은 운영체제와 어셈블러가  어셈블리 언어로 작성되었다. -> 메모리가 용량이 적고, 컴파일러가 비효율적이기 때문에
  • high-level language 프로그램은 어셈블리어보다 매우 적은 코드로 작성 가능

 

Assembler

  • Assembly Language Code -> Machine Code(Object file)
  • Object file: Combination of machine language 명령어, 데이터, 명령어를 메모리에 적절하게 위치시킬 정보
  • Machine code: CPU에서 바로 실행될 수 있는 2진코드

 

Linker

  • 독립적으로 어셈블된 모든 오브젝트 파일들을 하나로 묶는 역할을 한다. -> executable file(.exe file)

linker가 중요한 이유

  • 컴퓨팅 리소스를 사용하는 모든 함수를 retranslating함
  • 각 procedure를 독립적으로 컴파일&어셈블한다. -> online change는 오직 한 번의 procedure 컴파일&어셈블링을 필요로 한다.

 

Dynamically linked libraries(DLLs)

  • 동적으로 링킹된 라이브러리
  • 프로그램이 실행되는 동안 링킹되는 라이브러리 루틴(block of codes)
  • 프로그램이 실행되기 이전에 라이브러리를 링킹하면?(정적 링킹) -> 라이브러리의 new version이 나와도, old version 사용을 유지한다. 프로그램에서 라이브러리를 사용하지 않아도, 해당 라이브러리의 모든 루틴을 로드한다.

 

ARM vs. MIPS

ARMv7

  • ARM: 임베디드 장치에서 가장 인기있는 ISA(intruction set architecture)
  • 임베디드 환경에서는 속도가 빨라야함 -> 경량화 중요
  • arm의 목적은 속도 -> divide는 다른 연산에 비해 속도가 굉장히 느림 -> 다른 방법으로 근사화