일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- correlation
- 상관관계
- integrated gradient
- XAI
- gather_nd
- API
- hadoop
- BigQuery
- flask
- API Gateway
- grad-cam
- 유튜브 API
- login crawling
- requests
- youtube data
- chatGPT
- UDF
- top_k
- GenericGBQException
- session 유지
- Retry
- spark udf
- airflow subdag
- GCP
- Airflow
- TensorFlow
- Counterfactual Explanations
- tensorflow text
- subdag
- 공분산
- Today
- Total
데이터과학 삼학년
컴퓨터의 구성요소 및 역할 본문
컴퓨터란
-
컴퓨터의 정의
-
전자회로를 이용하여 데이터를 처리하는 장치
-
방대한 데이터를 저장하고 계산
-
입력,제어,기억,연산,출력 기능
-
컴퓨터가 하는 일
-
복잡한 계산(미적분, 통계 등)
-
초정밀 그래픽구현 (배그같은)
-
네트워크 통신
-
컴퓨터의 역사 - 고대
-
계산 도구로서 처음은 주판
-
기원전 약 3000년전 고대 메소포타미아에서 사용 → 17세기에도 주판 이용
-
컴퓨터의 역사 - 중세
-
1642년 프랑스 수학자 파스칼이 톱니바퀴를 이용한 계산기 발명
-
최초의 기계식 계산기
-
덧셈, 뺄셈 가능
-
1671년 독일의 라이프니츠가 이를 개량해 곱셈, 나눗셈도 가능한 것 발명(2진법)
-
컴퓨터의 역사 - 근현대
-
19세기 중반 영국의 찰스 배비지가 차분엔진 발명
-
현태 컴퓨터의 개념을 제시 → 차분엔진
-
프로그램과 데이터로 구성된 입력은 천공카드 사용
-
1930년 앨런 튜링, 알론조 처치 등이 계산 가능성 및 불가능성에 대한 연구 → 튜링 머신 탄생
-
튜링 머신은 긴 테이프에 부호 기록해 프로그램처럼 사용
-
정지문제
-
프로그램과 입력값이 있을 때 컴퓨터가 정지시킬 수 있는가(기계가 판단 가능? )
-
check(check)를 넣은 recursive를 할 때 이 함수는 어떻게 동작? → 귀류법사용
-
1941년 독일의 콘라드 추제가 z3 발명 → 5~10hz
-
1945년 폰 노이만이 stored-program architecture를 제안 → 전선 재배치가 아닌 SW로 컴퓨터 제어
-
1946년 미국의 ENIAC 제작 → 30T 가 넘는 무게, 전력 소모량이 큼
-
컴퓨터의 역사 -현대
-
1960년대 : 초기의 다목적 컴퓨터 IBM시스템/360개발
-
1970년대 : Thompson과 Ritchie가 Unix와 C개발(벨연구소)
-
1970년대 : Intel 8008 프로세서 개발(모든 CPU의 아버지)
-
1980년대 : Intel 프로세서와 ms-dos 사용하는 IBM PC 등장
-
1980년대 : GUI와 마우스를 사용하는 애플 매킨토시 등장
-
1990년대 : Linus Torvalds가 Linux 개발
-
1990년대 : Microsoft의 Windows가 등장
-
1990년대 : 인터넷 포탈 등장
-
2000년대 : 컴퓨터를 활용하여 인간 DNA 30억 염기서열을 밝히는 Genom Project
-
2000년대 : 애플의 iPhone을 필두로 스마트폰
-
2000년대 : web의 사용 증가로 데이터 량이 증가, 빅데이터와 인공지능의 시대
1강 추가강의 - 정지문제
-
정지문제 : 기계적인 방식으로 모든 수학적인 증명이 가능한가? -결정문제
-
David hilbert가 만든 현식체계안에서 증명 가능하다고 증명함
-
튜링머신
-
tape를 저장 매체로 활용 → 일정 크기로 cell을 나눠놓고 기호들이 있음
-
이론상으로는 tape의 길이가 무한대래...
-
head로 tape를 찍음
-
종이 tape의 특정한 한 cell을 읽는 역할
-
상태 기록기
-
행동표 - 특정한 상태에서 특정 기호를 읽었을 때 해야할 행동을 정의해놓음
-
head를 이동할지 말지등
-
제약조건
-
테이프에 기록될 수 있는 기호 및 상태, 행동표의 개수는 유한하고 구분되어야함
-
행동표 예시 “현재 상태가 1인데 기호A를 읽었다면 C를 기억하고 정지”
-
이처럼 이런 튜링머신이 유한한 시간안에 모든 문제를 푸는 방법이 없다는 것을 찾고 David hilbert 버튼의 이론을 반박함
컴퓨터 분야의 위대한 8가지 아이디어
-
무어(Moore)의 법칙을 고려한 설계
-
인텔의 창립자 중 한명인 고든 무어의 예측에서 유래
-
18~24개월마다 칩에 집적되는 소자의 수가 2배가 된다는 법칙
-
컴퓨터를 설계하는데 수년이 걸리기 때문에 집적되는 소자의 수가 2배 내지 4배가 증가함
-
설계를 단순화하는 추상화
-
생산성을 높이기 위해 추상화 개념을 사용
-
하위 수준의 상세한 사항을 안보이게 함으로 써 상위 수준 모델 단순화 → OS에서 배웠지(Input이 들어가면 Output)
-
추상화의 대표 예 : 고급 언어(C,Python) → 기계어를 인간이 알아볼수 있게한 예
-
Common case fast
-
자주 발생하는 일을 빠르게 처리하여 성능 향상 도모
-
common case가 무엇인지 알고 있다는 가정하에 적용
-
병렬성을 통한 성능 개선
-
병렬성이란 한작업을 여러대의 작업자가 처리하는 방식
-
예 : 쓰레드
-
파이프라이닝을 통한 성능 개선
-
병렬성의 특별한 형태로 처음 단계의 출력이 다음단계 입력으로 이어지는 구조
-
예측을 통한 성능 개선
-
수요가 예상되는 부분을 예측
-
복구비용이 낮고 성공확률이 높을수록 효과적
-
정확한 예측을 위한 지표가 필요함
-
메모리 계층 구조
-
메모리 계층구조를 통한 문제 해결
-
최상위 - 비싸고 제일 빠른 메모리(최근 접근했던 데이터)
-
최하위 - 느리고 값이 싼 메모리
-
여유분을 이용한 신용도 개선
-
시스템을 믿을 수 있는 정도
-
장애대처를 위한 여유분 준비
-
데이터 손실 예방을 위한 백업과 비슷한 개념
컴퓨터의 구성요소 및 역할
-
컴퓨터의 구성요소
-
입력, 출력, 메모리, 데이터패스,제어유닛
-
CPU = Processor, I/O = 마우스, 키보드 등..
-
프로세서
-
메모리로부터 명령과 데이터를 얻음
-
제어 유닛은 프로그램 명령에 따라서 데이터패스, 메모리, 입출력 동작을 결정함
-
메모리
-
실질적으로 데이터 저장되는 공간
-
입력
-
데이터를 메모리에 씀
-
출력
-
메모리로부터 데이터를 읽음
-
프로세서의 역할 : CPU
-
메모리로부터 명령어를 받아와 제어신호를 생성
-
컴퓨터 명령어(기계어)를 해석하고 연산함
-
컴퓨터 기술을 이끄는 원동력
-
인간의 두뇌와 같은 역할
-
프로세서의 역할 : GPU
-
픽셀로 이루어진 영상을 처리하는 용도로 탄생
-
싱글코어는 CPU보다 저성능이지만 병렬적인 수천개 코어가 연결되어 있어 병렬처리에 용이
-
인공지능 기술발전의 선도주자
-
프로세서의 동작과정
-
제어유닛(Control Unit,CU), 레지스터(Register), 산술/논리 연산장치(Arithmetic/Logic Unit, ALU)
-
메모리로부터 명렬된 내용을 CU가 받고 이것을 제어신호로 만들어 ALU에게 전달 → ALU가 연산실행하고 CU에 다시 전달 → CU가 주변장치에게 전달
-
Register는 고속기억장치로 연산을 위해 임시로 저장하는 공간
-
범용 레지스터 : 연산에 필요한 데이터나 연산결과를 임시 저장
-
특수목적 레지스터
-
메모리의 역할
-
명령어(프로세스) 및 데이터 적재
-
CPU내부에는 register라는 기억장치가 있는데 왜 메모리가 따로 있어야 할까? → register가 빠르지만 저장할 수 있는 용량이 적음
-
휘발성 데이터 저장 (RAM), 비휘발성(ROM), 최신데이터(캐시)
-
입력장치의 역할
-
데이터를 입력하기 위한 컴퓨터의 외부장치
-
키보드,마우스,스캐너 등
-
출력장치의 역할
-
컴퓨터에서 처리된 결과를 출력해주는 외부장치
-
모니터, 프린터, 스피커 등