:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
16/09/13 10:28
16/09/13 14:43
이건 제가 잘 몰라서 드리는 질문일 수도 있는데 대체 몇년도 산 어떤 컴퓨터가 기껏 or 연산을 아끼나요? 할 수는 있지만 사이클을 낭비하거나 컴파일러한테 불필요한 부담을 주는 걸로 보이는데요. 제 생각엔 컴파일러가 필요한 수준의 프로그램을 돌리는 상용 프로세서 중에는 or 연산을 아끼는 경우는 없을 것 같습니다만..
16/09/13 20:04
현재 나오는 모든 프로세서가 그렇습니다.
컴파일러가 부담을 느낄요소가 없고, 설령 제가 아는 지식 밖에서 컴파일러가 부담을 느낀다고 하더라도 전혀 관계 없습니다. 그깟 컴파일러, 하는 일 컴파일/빌드 밖에 더 있나요. 조금 더 오래 하면 되죠. 자세한 이유는 생략하지만 다양한 게이트 중 nand 게이트가 가장 빠릅니다. 즉, 같은 소스코드로 바이너리를 만들고 실행했을때, nand 게이트로 만든 칩으로 실행했을 때 바이너리가 가장 빠르게 동작한다는거죠. 애초에 프로세서를 nand게이트로 구성하는 것과 컴파일 레벨 혹은 프로세스 사이클 낭비 등과 성능에 관여하는 layer가 다릅니다.
16/09/14 00:34
miscommunication이 있는 것 같네요. SPARC instruction Set을 보면 or가 지원됩니다. x86도 마찬가지구요. arm은 확인 안 해봤지만 MIPS도 있으니 ARM도 있겠죠. 그런 의미에서 or 연산을 아끼지는 않는 것 같습니다. ISA 레벨에서 or가 없다면 당연히 컴파일러에게 상당한 부담을 줄 수 있습니다.
그리고 그깟 컴파일러가 하는 일이라뇨. gcc랑 ICC만 해도 성능 차이가 CPU 2006 기준으로 흔히 두 자리 퍼센티지 차이가 납니다. 컴파일 타임 '조금 덜' 하려고 거대한 회사들끼리 경쟁 중이구요. 컴퓨터 명령어에 'or' 연산이 없다고 제목에 되어 있는데, 저 제목에서 저는 당연히 ISA에서 빠졌다는 의미를 읽었습니다. 이거 이렇게 되어 있는 프로세서는 없을 듯 한데, 있다면 예를 들어 주시면 좋겠네요.
16/09/14 00:56
질문의 제목이 '컴퓨터 명령어' 이기 때문에 들풀님과 미스커뮤니케이션이 발생했는지는 모르겠습니다만,
저는 단순히 컴퓨터구조론에서 배우는 nand 게이트로 or 게이트를 만드는 방법에 대한 질문을 하신걸로 이해했습니다. 글로 적고 보니 제가 제목을 감안하지 않아서 발생한 미스커뮤니케이션 같군요. 말씀하신 프로세서 레벨에서는 당연히 or 명령어를 제외할 이유가 전혀 없습니다. 마찬가지로 게이트 레벨에서는 or 게이트를 사용할 이유가 전혀 없구요. 마지막으로 컴파일러 부분에서는 이견이 갈릴 수 있다고 보는데, 제가 관련 업계에 속해있지 않다보니 컴파일 속도는 크게 중요하지 않다고 봅니다. 오히려 결과물인 바이너리의 속도가 더 중요하다고 생각하고, 옵티마이제이션 등을 통해 바이너리의 성능을 끌어올리는게 더 중요하다고 생각해요.
16/09/14 01:47
컴퓨터 구조와 프로그래밍이라는 키워드에서 헤네시와 패터슨의 그 책 정도를 떠올린다면 ISA를 얘기하는 걸로 읽는 게 무리는 아니라고 생각합니다. 보통 저 같은 소프트웨어 엔지니어가 게이트 레벨을 이해하도록 요구받지는 않거든요. 임베디드에서 저전력 다룰 때 정도나 게이트 이야기를 논문에서 읽었던 것 같습니다. 그래서 의아했던 것이구요. 저도 전자과 출신이고 간단한 상용 프로세서를 디자인해 본 적도 있기 때문에 그밖의 말씀하신 내용들에 대해서는 동의합니다.
어디가 중요하냐는 마케팅 측면도 있다고 봅니다. 사실 회사에선 매니저가 까라면 엔지니어는 까는 거죠. 성능이 중요한 건 두말할 필요 없지만 컴파일 타임도 서버 시장에서 서버 벤더가 자기네 소프트웨어 스택을 위해 컴파일러를 고를 때 중요한 요소인 것 같습니다. 저희 회사가 컴파일러도 하는데 그 팀 보면 상당한 인력을 컴파일 타임을 경쟁사 수준과 맞추는 데 쓰고 있습니다.
16/09/16 01:06
임베디드 쪽이시라면 소프트웨어 엔지니어도 게이트 레벨은 이해하고 있어야 할텐데요..
라고 적었는데 다시 읽어보니 임베디드 쪽이 아니신가보네요. ㅜㅠ
16/09/17 09:59
임베디드에서 시작해서 추상 수준을 올려 왔습니다. 미국은 임베디드 마켓이 아직 크지 않은 것 같습니다. 잡 오프닝이나 오퍼 보면 그런 것 같고요. 다 알면 좋죠. 근데 저 정도의 게이트 레벨 디테일이 1순위가 아닌 역할도, 임베디드로 불리는 분야는 넓어서 그 안에 많다고 생각합니다만..
|