오늘 알게된것
오늘 팀이 바뀌고 최종프로젝트를 진행하면서 추가적으로 진행해야될 부분이 두개가 있었는데
그중 오늘 CS(Computer Science)에대한 지식을 공부하면서 서로 질문을하고 응답을 하는 형식으로 진행을 하게되었다. 오늘은 첫날로 간단하게 부분을 나누어서 1시간 동안 공부를 진행하였는데.
CPU와 메모리에 대해서 각자 공부를했었다. 우선 그와중에 입 출력 장치와 CPU에 대해서 공부를 하였는데 처음으로 알게된 부분들이 있었다.
우선 레지스터는 연산에 필요한 데이터를 저장하고 빠른속도로 접근할 수 있는 저장공간 이다.
이 레지스터는 용도에 따라 범용레지스터와 특수목적 레지스터로 나뉘는데
범용 레지시터는 : 연산에 필요한 데이터나 연산결과를 임시로 저장하고
특수목적 레지스터는 : 특별한 용도로 사용하는 레지스터이다
특수목적 레지스터는 다양한 레지스터가 존재하는데
메모리 주소 레지스터: (MAR) : 읽고 쓰기 위한 주기억장치의 주소를 저장한다.
프로그램 카운터 (PC) : 다음에 수행할 명령어의 주소를 저장
명령어 레지스터 (IR) : 현재 실행 중인 명령어를 저장
메모리 버퍼 레지스터 (MBR) : 주기억장치에서 읽어온 데이터나 저장할 테이터를 임시로 저장
누산기 (AC, ACCUMULATOR) : 연산 결과를 임시로 저장
등이 있었다.
그리고 CPU동작 원리에 대해서도 공부를 했었는데 그냥 가볍게 내가알던것을 컴퓨터와 개발자가 서로 원할하게 소통을 하기위해 프로그래밍언어를 사용한다고만 알고있었는데.
오늘 CS를 하면서 기계어를 하드웨어적으로 CPU가 알아볼수있게 한것을 어셈블리어이고
어셈블리어를 사람이 알아볼수 있게 변환한것은 프로그래밍언어
즉, CPU가 명령어를 읽고 수행하는 동작으로
명령어 인출 => 명령어 해독 => 실행 => 반영 순으로 동작을 한다는거 알수있었습니다.
오늘 느낀점