메모리에서 레지스터로 읽어 올때 32bit만큼 병렬로 읽어들일 수 있다.
**usb는 시리얼(직렬) 통신으로 1bit씩 움직이지만 엄청 빠르다.
32bit 컴퓨터라고 하면 레지스터 크기가 32bit이고, 메모리에 한 번 저장되는 크기도 32bit이고, 메모리에서 레지스터로 읽어오는 것도 32bit(=32개의 선)이다. 그리고 32bit 컴퓨터일 경우 메모리(시금치)가 4GB(2^32)까지만 인식되고, 64bit일 경우 8GB(2^64)까지 인식된다는걸 들어본적이 있다.
즉 bit가 큰 컴퓨터는 "빠르다"라고 말할 수 있다.
클럭은 심장의 심박수와 같은 필수적인 존재이다. 클럭은 시간개념하고는 조금 다르다. 인간에게는 "초(sec)"라는 개념이 있지만 CPU에겐 시간보다는 "클럭"이라는 개념뿐이다. 인간은 1초에 눈 한 번 껌뻑거릴 수 있지만 CPU는 클럭의 수에 따라 한 번 혹은 수 천번 껌뻑거릴 수 있게 되는것이다. 즉 CPU는 클럭이 클 수록 더욱 더 많은 일을 처리할 수 있다.
내가 사용하는 MCU는 72Mhz까지 지원해준다. 즉 1초 동안 1/72Mhz 정도의 펄스가 생기기 때문에 엄청 많은 일을 하는것이다. 하지만 더 빠른 처리를 위해 CPU가 가지고 있는 한계보다 더 많은 펄스를 넣어줘봤자 큰 의미를 갖진 않는다.
sin파가 한 번 그려질 때(1주기=1초)가 1Hz이다.
ex) 100Hz는 1초에 100번 sin파를 그린다.
컴퓨터의 프로세서 속도 측정 단위이면서 IPS(Instructions per second, 초당 명령 수)는 단위 시간당 처리할 수 있는 명령어이다.
예를 들어 ADD라는 명령어가 있다면 1초에 100만번 수행할 수 있다는 뜻이 된다.
특정 작업을 수행시켜 이에 걸리는 시간을 측정한 후 정수화 하여 시스템 성능을 비교함
즉 "Cortex-M3는 1초에 72Mhz로 클럭이 작동하고, 1Mhz의 클럭이 흐를때 어떠한 명령어를 1.25번 수행할 수 있다."라고 말할 수 있을거 같다.
<참고>
https://blog.daum.net/trts1004/12109453 - 예시를 들어줌
https://blog.daum.net/trts1004/12109217
프로세서가 메모리 액세스를 수행하기 위해서는 기다릴 필요가 있지만 여기서는 기다릴 필요가 없다고 명시해줬다.
싱글 사이클에 곱하기를 할 수 있고 하드웨어는 나누기를 할 수 있다. -> 그냥 빠르다
(파이프 라인 이해해보기)
Flash와 SRAM의 차이점을 찾아보자
내부에 8MHz를 만들어내는 발진기가 존재한다.
**PLL(위상 동기 회로) = Phase-Locked Loop
현재 우리는 8Mhz짜리 발진기를 달아줌으로써 8Mhz 클럭을 만들어 주고 있다. 하지만 우리 MCU는 72Mhz까지 클럭을 만들어 사용할 수 있다. 즉 PPL이라는 회로를 이용하여 8Mhz를 72Mhz까지 끌어올릴 수 있도록 해준다.
크리스탈 발진기에서 만들어주는 클럭을 증폭시키도록 도와준다.
**RTC = Real Time Clock
32kHz까지 작동할 수 있도록 도와주는 RTC 발진기가 있다.
전력을 적게 사용하고 싶을 때 사용되는 모드이다. (필요 순간 진입할 수도 있고, 매 순간 사용할 수도 있다)
** ADC = 전압을 디지털화 시키는 것
12bit ADC가 2개 있고, 한 번 수행하는데 10^-6sec가 필요하고, 16개의 입력할 수 있는 채널을 지원해준다.
12bit가 가지는 의미는 3.6V를 2^12로 나누었다는 뜻이다. 8bit와 32bit의 값 정확도를 비교했을때 32bit가 훨씬 정교하다.
ADC에서 신호를 양자화 할려고 할 때, 표본화 값을 받을 만한 시간이 어느정도 필요하다.
** 표본화와 양자화 정리 블로그 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=yong_hee0214&logNo=140156731945
CPU의 도움을 받지 않고 I/O와 Memory가 정보를 주고 받을 수 있도록 도와줌
STM32cubeIDE에서 핀을 설정해 준다 >> PCB와 STlink를 연결 해준다 >> 노트북에 연결하여 디버그 모드에 진입한다.
카운터가 완료 되면 인터럽트가 발생
버튼이 눌릴 때마다 외부 인터럽트가 발생하고, 발생 동시에 카운터 값이 증가한다.
밥을 주면 개가 짖지 않고 밥을 주지 않으면 개가 짖는다(짖을 때 인터럽트가 발생)