Home / Expert Answers / Computer Science / this-assignment-will-provide-a-hands-on-example-of-how-to-implement-a-computing-in-memory-architect-pa562

(Solved): This assignment will provide a hands-on example of how to implement a Computing-in-Memory architect ...




This assignment will provide a hands-on example of how to implement a Computing-in-Memory architecture based on dynamic rando

Recall that in class we discussed AMBIT, which is a DRAM design that can greatly accelerate Bulk Bitwise Operations by provid



This assignment will provide a hands-on example of how to implement a Computing-in-Memory architecture based on dynamic random-access memory (DRAM). We will use the Accelerator-in-Memory for bulk bitwise operations (AMBIT) architecture, discussed in our class, throughout this assignment. There are the following goals set up for this activity: (1) to familiarize students with the AMBIT architecture, which can be used to efficiently perform bulk-bitwise logic operations (XOR, AND, OR) inside the memory, (2) to learn how to leverage bulk-bitwise logic operations performed with AMBIT to perform arithmetic operations (i.e., ADD) in a bit-serial fashion, and (3) to quantify the effect of AMBIT on application-level performance compared to a CPU baseline. Instructions: For parts 1 and 2 below, answer the items highlighted in red. The total points worth for each item are indicated between brackets. Part 1 You have been hired to accelerate a student database. After profiling the system for a while, you found out that one of the most executed queries is to "select the hometown of the students that are from Switzerland and speak German". The attributes of hometown, country, and language are encoded using a four-byte binary representation. The database has entries, and each attribute is stored contiguously in memory. The database management system executes the following query: You are running the above code on a single-core processor. Assume that: - Your processor has an direct-mapped cache, with a cache line of 64 bytes. - A hit in this cache takes one cycle and a miss takes 100 cycles for both load and store operations. - All load/store operations are serialized, i.e., the latency of multiple memory requests cannot be overlapped. - The starting addresses of students.country, students.language, and position_hometown are 0x05000000, 0x06000000,0x07000000 respectively. - The execution time of a non-memory instruction is zero (i.e., we ignore its execution time). [1 point] Q1: How many cycles are required to run the query? Show your work. Recall that in class we discussed AMBIT, which is a DRAM design that can greatly accelerate Bulk Bitwise Operations by providing the ability to perform bitwise AND/OR/XOR of two rows in a sub- array. AMBIT works by issuing back-to-back ACTIVATE (A) and PRECHARGE (P) operations. For example, to compute AND, OR, and XOR operations, AMBIT issues the sequence of commands de-scribed in the table below . AAP represents double row activation of rows and followed by a precharge operation, AAAP represents triple row activation of rows , and followed by a precharge operation). In those instructions, AMBIT copies the source rows Di and Dj to auxiliary rows (Bi). Control rows Ci dictate which operation (AND/OR) AMBIT executes. The DRAM rows with dual-contact cells (ti.e., rows DCCi) are used to perform the bitwise NOT operation on the data stored in the row. Basically, copying a source row to DCCi flips all bits in the source row and stores the result in both the source row and DCC. Assume that: - The DRAM row size is 8 Kbytes. - An ACTIVATE command takes 50 cycles to execute. - A PRECHARGE command takes 20 cycles to execute. - DRAM has a single memory bank. - The syntax of an AMBIT operation is: bbop_[and/or/xor] destination, source_1, source_2. - Addresses 0x08000000 and 0x09000000 are used to store partial results. - The rows at addresses 0x0A000000 and 0x0B00000 store the codes for "Switzerland" and "German", respectively, in each four bytes throughout the entire row. [1 point] Q2: The following code aims to execute the query "select the hometown of the students that are from Switzerland and speak German" in terms of Boolean operations to make use of AMBIT. Fill in the blank boxes such that the algorithm produces the correct result. Show your work. [1 point] Q3: How much speedup does AMBIT provide over the baseline processor when executing the same query? Show your work.


We have an Answer from Expert

View Expert Answer

Expert Answer


We have an Answer from Expert

Buy This Answer $5

Place Order

We Provide Services Across The Globe