n computer science and engineering, computer architecture is the art that specifies the relations and part of a computer system.[1] In the architecture of buildings, this art is normally visual, but computer architecture is logical, defining systems to serve particular purposes. In both instances (building and computer), a complete design has many details, and some details are implied by common practice.
Computer architects use computers to design new computers. Emulation software can run programs written in a proposed instruction set. While the design is very easy to change at this stage, compiler desigers often collaborate with the architects, suggesting improvements in the instruction set. Modern emulators may measure time in clock cycles, estimate energy consumption in joules, and give realistic estimates of code size in bytes. These affect the convenience of the user, the life of a battery, and the size and expense of the computer's largest physical part: its memory. That is, they help to estimate the value of a computer design.