Digital design and computer architecture. (2010)