DELVING INTO COMPUTER ARCHITECTURE: FUNDAMENTALS AND DESIGN PRINCIPLES