컴퓨터공학기초 및 이론/컴퓨터구조(4)
-
기계어와 어셈블리어 고급언어
고급언어: 일반적으로 언급되는 프로그래밍 언어 C언어, 파이썬, 자바 등 고급언어를 컴파일러가 어셈블리어로 번역 어셈블리어 : 컴파일러 부터 생성된 어셈블리어는 기계가 이해할 수 있는 형태로 번역됨 기계사고방식의 언어 어셈블러는 어셈블리어를 기계어로 번역 기계어: 기계어는 기수가 2인 숫자로 구성됨 숫자 단위 하나는 비트(bit) 컴퓨터가 이해할 수 있는 비트들의 집합 시스템 소프트웨어: 공통적으로 필요한 서비스를 제공하는 소프트웨어 운영체제, 컴파일러, 로더, 어셈블러 프로그램 -하드웨어간의 인터페이스 역할 High Level Language 기계어를 고도로 추상화한 표현으로써 인간이 이해하기 쉬운형태 프로그램을 개발한 기종에 상관없이 어느 컴퓨터에서든 실행가능한 형태 컴파일 과정에서 불필요한 inst..
2020.01.05 -
컴퓨터의 구성요소 및 역할
컴퓨터의 구성요소 - 입력 (Input) / 출력(Output) / 메모리(Memory) / 데이터패스(Data Path) / 제어유닛(Control) 구성요소별 역할 프로세서 - 메모리로부터 명령과 데이터를 얻음, 제어유닛은 프로그램 명령에 따라서 데이터패스, 메모리, 입/출력의 동작을 결정함. 메모리 - 실질적으로 데이터가 저장되는 공간 입력 - 데이터를 메모리에 쓴다 출력 - 메모리로부터 데이터를 읽는다. 프로세서의 역할 : CPU - 메모리로부터 명령어를 받아와 제어신호를 생성 - 컴퓨터 명령어(기계어)를 해석하고 연산함 - 컴퓨터 기술을 이끄는 원동력 - 인간의 두뇌와 같은 역할 GPU - 픽셀로 이루어진 영상을 처리하는 용도로 탄생 - 싱글코어는 CPU보다 저성능이지만 병렬적인 수천개의 코어가..
2020.01.02 -
컴퓨터 구조 분야의 8가지 아이디어
1. 무어의 법칙을 고려한 설계 2. 설계를 단순화 하는 추상화 - 설계시간을 줄이고 생산성을 높이기 위하여 추상화 개념을 사용 - 하위 수준의 상세한 사항을 안보이게 함으로써 상위 수준 모델을 단순화 ex) 고급언어(c,java,python)가 추상화의 대표적인 예 3. Common case fast - 자주 발생하는 일을 빠르게 처리하여 성능 향상 도모 - 자주 일어나는 일에 대한 최적화 및 단순화 - 무엇이 커먼케이스인가? - 세심한 실험과 측정 필요 4. 병렬성을 통한 성능개선 - 같은 작업(큰 문제)를 여러 개의 작은 문제로 나누어서 해결하는 방법 - 병렬처리의 예 : 쓰레드 5. 파이프라이닝을 통한 성능개선 - 파이프라이닝은 병렬성의 특별한 형태 - 처음단계 출력이 다음단계 입력으로 이어지는 ..
2019.10.27 -
정지문제
정지문제란 "프로그램과 초기 입력값이 주어졌을 때, 이 프로그램에 입력값을 넣고 실행한다면 이 프로그램이 계산을 끝내고 멈출지 아니면 영원히 계속 계산할지 판정하라" 라는 엘런 튜링이 제시한 문제로 유명하다. 이런 문제를 고안한 이유는 기계적인 방식으로 모든 수학적인 증명이 가능한지를 묻는 결정문제로부터 출발한다. 결정문제를 실제 기계로 구현하기 위해 튜링머신이라는 것을 고안했는데, 튜링 머신은 1. 테이프에 기록될 수 있는 기호 및 튜링 머신의 상태와 행동표의 개수는 모두 유한해야 하며 서로 구분되어야 한다. 2. 현재 상태가 1인데 기호 A를 읽었다면 C를 기록하고 정지 3. 현재 상태가 1인데 기호 B를 읽었다면 오른쪽으로 한 칸 이동하고 상태 2로 변경 4. 현재 상태가 2인데 기호 C를 읽었다면..
2019.10.27