PLC(programmable logic controller) 라는게 있다. 산업현장에서 쓰는 컴퓨터 같은애다.
이놈들 보면 CPU의 처리속도 와 별개로 스캔타임이란 걸 가지고 있다
보통 1ms 에서 10ms정도로 사용자가 설정해서 쓸 수있게 되어있는데
프로그램의 처음부터 끝까지 한번 읽는데 걸리는 시간으로 알고있다.
내가 알기로는 CPU의 GHz는 명령어를 얼마나 빨리 처리할수 있느냐의 개념으로 알고있는데
이 명령어의 처리라는 부분이 내가 배운 열혈씨 기준으로 말해보자면
#includ <stdio.h> 부터
int main(void)
{
lkdflajsflkjsdfksdjfl
~~~
return 0;
}
여기까지를 말함이냐?
아니면 저 한줄 한줄의 처리속도를 말함이냐?
한줄한줄의 처리속도라면 전체 프로그램의 스캔주기를
텍스트 언어에서는 따로 지정하거나 하냐?
아 혹시 언어로 하는 프로그래밍은 위에서 아래로 안내려오냐?
혹시 이런건 무슨책보면 나오는건지도 좀 알려주라..
한줄 단위가 아니고. C 언어가 기계어로 번역되면 해당 기계어 마다 소요 클럭이 다르다.
한 줄의 내용에 따라 수십개의 명령어가 될 수도 있고, 명령어 한 개도 안될 수도 있으니 줄로 비교하는건 무리. 니가 CPU Instruction 과 C 언어의 명령어들간의 관계를 이해해야 대충이라도 예측할 수 있는 거지.
PLC 의 스캔타임도 딱 정해져 있진 않잖아.
그럼 plc의 스캔타임과 비교할수 있는게 기계어? 컴파일러?의 한클럭 이라는 개념인거야?
굳이 비교하자면, PLC 의 스캔타임과 비슷한 것이 Instruction Fetch Cycle 이라고 한다.
연산은 단순히 프로그램 라인으로 판별하는건 아님
근데 plc쪽이면 요즘 워낙 성능이 좋아서 딱히 그런거 신경 쓸 필요 없을텐데 ㅋㅋㅋㅋ
아니, PLC 도 내부 클럭을 갖고 있지만, Scan Time 이 몇 클럭이 될지 정해져 있진 않듯, 어떤 명령어들을 처리하기 위해 메모리에서 데이타를 가져온다든지 해독한다든지, 실행한다든지, 언터럽트를 처리한다든지, 그 과정에서 파이프라인이 채워져 돈다든지 비워진다든지에 따라 성능이 다르다.
오죽하면 옜날에는 프로그램쟁이가 신이엿는데 요새는 존나 무능한새기 작업 다 해놧더니 프로그램 못해서 센서추가하고 기계 개지랄하나는게 한두개가 아니죳 ㅋㅋ
그렇구나 어차피 래더로 짜도 컴파일되서 넘어갈테니까.. 시발 프밍너무 어렵노이기
위에 언터럽트라고 친건가 ㅡ,.ㅡ 요즘 머리랑 손 발이 따로논다 젠장
하나만더, 어셈블리어란걸로 짜면 컴파일러 과정 안거치고 씨퓨가 알아먹음?
어셈블리어 즉, Assembly Language 로 짠건 Assembler 가 해독해서 Machine Code 로 만들어준다. Machine Code 만, CPU 가 알아먹음. 물론 엄밀히 실행파일 포맷이란게 그런 Machine 코드를 한번 더 싸 놓은 구조여서 순수하게 해독되진 않는다. Memory Loader 가 해독해서 메모리에 배치해 주고 Entry Point 로 Jump 해주면 실행되는 식이지.
옛날 도스시절에 확장자가 com 이었던 실행파일은 군살없이 기계어코드 바로 짜 넣어도 실행되긴 했어.
저기서 말하는 Entry Point 가 Main 함수라고 생각하면 돼. 것도 운영체제에 따라 한 번 더 Wrapping 된 경우도 있지만 : )