<?xml-model href='http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng' schematypens='http://relaxng.org/ns/structure/1.0'?><TEI xmlns="http://www.tei-c.org/ns/1.0">
	<teiHeader>
		<fileDesc>
			<titleStmt><title level='a'>EXMA: A Genomics Accelerator for Exact-Matching</title></titleStmt>
			<publicationStmt>
				<publisher></publisher>
				<date>02/01/2021</date>
			</publicationStmt>
			<sourceDesc>
				<bibl> 
					<idno type="par_id">10282764</idno>
					<idno type="doi">10.1109/HPCA51647.2021.00041</idno>
					<title level='j'>IEEE International Symposium on High-Performance Computer Architecture</title>
<idno></idno>
<biblScope unit="volume"></biblScope>
<biblScope unit="issue"></biblScope>					

					<author>Lei Jiang</author><author>Farzaneh Zokaee</author>
				</bibl>
			</sourceDesc>
		</fileDesc>
		<profileDesc>
			<abstract><ab><![CDATA[Genomics is the foundation of precision medicine, global food security and virus surveillance. Exact-match is one of the most essential operations widely used in almost every step of genomics such as alignment, assembly, annotation, and compression. Modern genomics adopts Ferragina-Manzini Index (FMIndex) augmenting space-efficient Burrows-Wheeler transform (BWT) with additional data structures to permit ultra-fast exact-match operations. However, FM-Index is notorious for its poor spatial locality and random memory access pattern. Prior works create GPU-, FPGA-, ASIC- and even process-in-memory (PIM)based accelerators to boost FM-Index search throughput. Though they achieve the state-of-the-art FM-Index search throughput, the same as all prior conventional accelerators, FM-Index PIMs process only one DNA symbol after each DRAM row activation, thereby suffering from poor memory bandwidth utilization. In this paper, we propose a hardware accelerator, EXMA, to enhance FM-Index search throughput. We first create a novel EXMA table with a multi-task-learning (MTL)-based index to process multiple DNA symbols with each DRAM row activation. We then build an accelerator to search over an EXMA table. We propose 2-stage scheduling to increase the cache hit rate of our accelerator. We introduce dynamic page policy to improve the row buffer hit rate of DRAM main memory. We also present CHAIN compression to reduce the data structure size of EXMA tables. Compared to state-of-the-art FM-Index PIMs, EXMA improves search throughput by 4.9 ×, and enhances search throughput per Watt by 4.8×.]]></ab></abstract>
		</profileDesc>
	</teiHeader>
	<text><body xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>Because of the huge advancement of sequencing technologies such as Illumina <ref type="bibr">[1]</ref>, PacBio SMRT <ref type="bibr">[2]</ref>, and Oxford Nanopore <ref type="bibr">[3]</ref>, sequencing a entire human genome requires only &lt; 1 day. The big genomic data has been a cornerstone to enabling personalized healthcare <ref type="bibr">[4]</ref>, and ensuring global food security <ref type="bibr">[5]</ref>. Recently, genome sequencing becomes a powerful tool to fight virus outbreaks, e.g., Ebola <ref type="bibr">[6]</ref>, Zika <ref type="bibr">[7]</ref> and COVID-19 <ref type="bibr">[8]</ref>.</p><p>However, it is challenging to process and analyze huge volumes of genomic data generated by high throughput sequencers that scale faster than Moore's Law <ref type="bibr">[9]</ref>. For instance, thousands of USB-drive-size Oxford Nanopore Minion sequencers are deployed to monitor virus outbreaks <ref type="bibr">[6]</ref>- <ref type="bibr">[8]</ref> in the wild by generating several terabytes data per day. Analyzing a single genome may take hundreds of CPU hours <ref type="bibr">[10]</ref>, <ref type="bibr">[11]</ref> even on high-end servers. To overcome the looming crisis of big genomic data, the application-specific hardware acceleration has become essential for genomics. A genome sequencing pipeline <ref type="bibr">[4]</ref> sequences organic genomes, archives genomic data, analyzes genome sequences, and generates genetic variants that can used for patient treatment. Therefore, the latency of genome sequencing is a matter of life and death. Read alignment <ref type="bibr">[12]</ref>, which aligns reads, i.e., small DNA fragments, against a long genome reference, is identified as one of the most time-consuming steps <ref type="bibr">[10]</ref>, <ref type="bibr">[11]</ref>, <ref type="bibr">[13]</ref>- <ref type="bibr">[15]</ref> in genome analysis. Read alignment adopts the seed-and-extend paradigm <ref type="bibr">[12]</ref>, <ref type="bibr">[16]</ref>, and thus includes two major stages, i.e., seeding and seed extension. During seeding, parts of each read are mapped to their exactly matched positions, i.e., seeds, of the long reference by hash tables <ref type="bibr">[10]</ref>, <ref type="bibr">[11]</ref>, <ref type="bibr">[17]</ref> or Ferragina-Manzini Index (FM-Index) <ref type="bibr">[12]</ref>, <ref type="bibr">[16]</ref>. Seed extension pieces together a larger sequence with seeds and edit distance errors, i.e., insertions, deletions (indels) and substitutions, by dynamic programming <ref type="bibr">[18]</ref>- <ref type="bibr">[20]</ref>.</p><p>State-of-the-art read alignment applications such as BWA-MEM <ref type="bibr">[12]</ref>, MA <ref type="bibr">[16]</ref> and SOAP <ref type="bibr">[21]</ref> use FM-Index to build super-maximal exact matches (SMEMs) during seeding, since it augments the space-efficient Burrows-Wheeler transform (BWT) <ref type="bibr">[22]</ref> with accessory data structures that permit ultrafast exact-match operations. SMEMs generated by FM-Index guarantee each seed does not overlap other seeds and has the maximal length that cannot be further extended. Compared to hash tables, FM-Index reduces not only the number of errors in output genome mappings but also the durations of seed extension substantially <ref type="bibr">[23]</ref>.</p><p>Besides read alignment, FM-Index is widely used for exactmatch operations in other time-consuming steps of genome analysis such as genome assembly <ref type="bibr">[24]</ref>, annotation <ref type="bibr">[25]</ref> and compression <ref type="bibr">[26]</ref>. Figure <ref type="figure">1</ref> shows the execution time breakdown of various genome analysis applications on a human genome 1 . On average, FM-Index searches cost 31% &#8764; 81% of the execution time of these genome analysis applications. Since Illumina, Nanopore and PacBio genome sequencers generate reads having different lengths and error rates, aligning and assembling these reads require different amounts of time for FM-Index searches. The reads produced by Illumina machines have lower error rates, so an Illumina dataset invokes FM-Index searches more frequently. However, FM-Index is notorious for its poor spatial locality and random memory access pattern <ref type="bibr">[27]</ref>. The kernel of conventional FM-Index search is pointer chasing. After activating one DRAM row, FM-Index processes only one DNA symbol, thereby greatly decreasing DRAM bandwidth utilization. Although a recent algorithmic work, LISA <ref type="bibr">[28]</ref>, uses a learned index <ref type="bibr">[29]</ref> to search multiple DNA symbols after each row activation, the learned index accuracy is low. LISA has to search many unnecessary entries, and thus achieves only moderate search throughput improvement. Beyond CPUs <ref type="bibr">[12]</ref> and GPUs <ref type="bibr">[21]</ref>, prior work creates FPGA <ref type="bibr">[13]</ref>, <ref type="bibr">[30]</ref>-, ASIC <ref type="bibr">[31]</ref>-, and even processing-in-memory (PIM) <ref type="bibr">[14]</ref>, <ref type="bibr">[15]</ref>-based designs to accelerate conventional FM-Index searches processing only one DNA symbol after each row activation. Therefore, these accelerators are fundamentally limited by the poor off-chip memory bandwidth utilization. Instead of searching multiple DNA symbols after each row activation, a recent DRAM PIM, MEDAL <ref type="bibr">[15]</ref>, achieves the state-of-the-art search throughput by enabling DRAM chip-level parallelism, where each chip can independently activate a partial row to process a DNA symbol. However, we observe that there are a lot of conflicts on the DDR4 address bus shared by all chips in a rank. The shared address bus seriously limits search throughput of MEDAL.</p><p>In this paper, we propose an algorithm and hardware codesigned accelerator, EXMA, to process EXact-MAtch operations during genome analysis. Our contributions are summarized as follows:  Seed-and-Extend: As one of the bottlenecks in genome analysis, read alignment may consume hundreds of CPU hours <ref type="bibr">[10]</ref>, <ref type="bibr">[11]</ref>, <ref type="bibr">[13]</ref>. During read alignment, DNA reads generated by various sequencing machines, e.g., Illumina, PacBio SMRT, and Oxford Nanopore, are mapped to a preexisting genome reference, as shown in Figure <ref type="figure">2</ref>(a). Read alignment is complicated by the fact that there are genetic variations in the human population, and sequencing machines also introduce sequencing errors <ref type="bibr">[32]</ref>. The overall variation of human population has been estimated as 0.1% <ref type="bibr">[9]</ref>, while the sequencing error rate of various sequencing machines is 0.2% &#8764; 30% <ref type="bibr">[32]</ref>. To reduce sequencing errors, a sequencing machine produces 30 &#8764; 50 reads to cover every position in the genome. As Figure <ref type="figure">2</ref>(b) shows, read alignment adopts the seed-and-extend paradigm <ref type="bibr">[12]</ref>, <ref type="bibr">[16]</ref>, <ref type="bibr">[24]</ref>, <ref type="bibr">[33]</ref>- <ref type="bibr">[35]</ref> to accommodate sequencing errors and genetic variations. During seeding, a read is divided into multiple smaller parts that are aligned against the reference. If a part is exactly matched, it becomes a seed. The computationally expensive Smith-Waterman algorithm <ref type="bibr">[10]</ref>, <ref type="bibr">[11]</ref>, <ref type="bibr">[13]</ref> is invoked only around seeds to handle sequencing errors and genetic variations.</p><p>Exact-Match Operation: The alphabet of DNA includes A, C, G and T . Given a genome reference G &#8712; * of length |G| and a query Q &#8712; * of length |Q|, the seeding, aka exact-match problem, is to find all occurrences of Q in G.</p><p>A na&#239;ve algorithm of exhausting all possible positions for Q will take O(|G||Q|) comparisons, which is infeasible for large genome. It is possible to use a hash table <ref type="bibr">[10]</ref>, <ref type="bibr">[11]</ref>, <ref type="bibr">[17]</ref> to support exact-match operations with hundreds of gigabytes DRAM, but the hash-table-based seeding not only degrades genome mapping quality but also prolongs seed extension durations <ref type="bibr">[23]</ref>. State-of-the-art alignment algorithms <ref type="bibr">[12]</ref>, <ref type="bibr">[16]</ref>, <ref type="bibr">[21]</ref> use FM-Index for seeding. To search a query Q over the reference genome G, FM-Index occupies O(|G|log(|G|)) DRAM space and does O(|Q|) comparisons during a search.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. FM-Index 1) Burrows-Wheeler Transform</head><p>FM-index is built upon BWT <ref type="bibr">[22]</ref>. To compute the BWT of a genome reference G, we can list all its circularly shifted sequences. For instance, Figure <ref type="figure">3</ref>(a) shows G = CAT AGA$, where $ indicates the end of the sequence and it is the lexicographically smallest symbol. Circularly shifted sequences of G = CAT AGA$ can be listed as $CAT AGA, A$CAT AG, . . ., and CAT AGA$, which can be sorted in the lexicographical order to form a Burrows-Wheeler (BW)-matrix. The last column of the BW-matrix is the BWT of G, i.e.,  BW T (G) = AGT C$AA. The sub-sequence ending with $ in each row of the BW-matrix is a suffix of G, which can be denoted by an integer (SA in Figure <ref type="figure">3</ref>(a)) recording its starting position in the reference. For example, AT AGA$ is SA <ref type="bibr">[3]</ref> = 1, which means it starts from the position 1 of G.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2) FM-index</head><p>The data structure and search algorithm of FM-Index can be summarized as:</p><p>&#8226; Occ and Count. FM-index searches are implemented with two functions Occ(s, i) and Count(s) over the BWT of G. As Figure <ref type="figure">3</ref>(b) exhibits, Occ(s, i) returns the number of symbol s in the BWT from the position 0 to the position i -1, e.g., Occ(C, 5) = 1, which means that there is only 1 C from the position 0 to the position 4 of BW T (G) = AGT C$AA. Count(s) shown in Figure <ref type="figure">3</ref>(c) computes the number of symbols in the BWT that are lexicographically smaller than the symbol s, e.g., Count(T ) = 6, which indicates that there are 6 symbols in BW T (G) = AGT C$AA lexicographically smaller than T . &#8226; Backward Search. An exact-match operation is implemented by backward search, whose algorithm can be viewed in Figure <ref type="figure">3(d)</ref>. The interval (low, high) covers a range of indices in the BW-matrix where the suffixes have the same prefix. The pointer low locates the index in the BWmatrix where the pattern is first found as a prefix, while the pointer high provides the index after the one where the pattern is last found. At first, low and high are initialized to the minimum and maximum indexes of the Occ table respectively. And then, they iterate from the last symbol in a query Q to the first. The pointer pos is updated by</p><p>where Q[i] indicates the i th symbol in the query Q. The pointer pos can be low or high, as shown from the lines 2 to 3 in Figure <ref type="figure">3(d)</ref>. The computations of low and high are pointer chasing and thus suffer from poor spatial locality <ref type="bibr">[14]</ref>, <ref type="bibr">[15]</ref>, <ref type="bibr">[30]</ref>. Finally, the interval (low, high) gives the range of indexes in the BW-matrix where the suffixes have the target query as a prefix. These indexes are converted to reference genome positions using SA. Figure <ref type="figure">3</ref>(e) illustrates an example of searching a query T AG in the reference G = CAT AGA$. Before a search happens, (low, high) is initialized to (0, 7). In the iteration 0, the last symbol G is processed, and then (low, high) is updated to <ref type="bibr">(5,</ref><ref type="bibr">6)</ref>. After three iterations, (low, high) eventually equals <ref type="bibr">(6,</ref><ref type="bibr">7)</ref>. By looking up SA <ref type="bibr">[6]</ref> = 2 in Figure <ref type="figure">3</ref>(a), we find that the query T AG in reference G = CAT AGA$ starts from the position 2. During an iteration of the FM-Index backward search, two memory accesses for low and high are issued for each symbol in a query Q. Totally, 2|Q| memory accesses are required for an exact match operation of a query. The FM-Index backward search performance is seriously limited by random memory accesses <ref type="bibr">[14]</ref>, <ref type="bibr">[15]</ref>, <ref type="bibr">[30]</ref>, since each access opens a DRAM row but fetches only 64B. k-step FM-Index <ref type="bibr">[36]</ref> is proposed to reduce the number of memory accesses to 2|Q| k by updating a k-mer, i.e., k DNA symbols, in each search iteration. The idea of k-step FM-Index is to enlarge the alphabet size from &#931; to &#931; k . For instance, if k = 2, instead of single DNA symbols, as Figure <ref type="figure">4</ref> shows, the enlarged alphabet includes 16 2-mers: AA, AC, . . ., T T . We can construct a BWT with the enlarged alphabet and its corresponding FM-Index to perform k-step backward search in the same way. The trade-off for k-step FM-Index is the increase in its size, which is calculated as where k is the number of DNA symbols updated in each search iteration. The size of multi-step FM-Index exponentially increases with an enlarging k.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>4) Learned Indexes for Sequence Analysis</head><p>To support multi-step searches with smaller DRAM overhead, a recent work proposes Learned Indexes for Sequence Analysis (LISA) <ref type="bibr">[28]</ref> consisting of an Index-Paired BWT (IP-BWT) array and a learned index.</p><p>&#8226; IP-BWT. In Figure <ref type="figure">5</ref> To search [G$, 0] by the learned index, we can traverse down lower-level neural network models based on the output of the higher-level neural network models. Finally, a leaf neural network model predicts the position of [G$, 0] in the IP-BWT. However, if the predicted position does not contain [G$, 0], a linear search over the IP-BWT starts from the predicted position to find its actual position.</p><p>III. RELATED WORK AND DESIGN MOTIVATION It is challenging to achieve high-throughput and powerefficient FM-Index searches by state-of-the-art FM-Index algorithms and accelerators.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Algorithm Inefficiency</head><p>Intractable Size of k-step FM-Index. We recorded the row IDs of 200 consecutive 1-step FM-Index search iterations in Figure <ref type="figure">6</ref>(a), where 197 different rows are accessed. Because 1step FM-Index processes only 1 DNA symbol in each iteration, in most cases, searching a DNA symbol by 1-step FM-Index requires one row activation. Prior accelerators <ref type="bibr">[14]</ref>, <ref type="bibr">[15]</ref> for 1-step FM-Index expect no row buffer hit and thus adopt close-page policy. Though k-step FM-Index can search k DNA symbols by activating a row, as Figure <ref type="figure">6</ref>(b) shows, its data structure size exponentially increases with the step number k. For instance, 5-step FM-Index costs 105GB, while 6-step FM-Index occupies 374GB. As a result, 5-step FM-Index (FM-5) improves search throughput by only 1.21&#215; over 1step FM-Index, as shown in Figure <ref type="figure">6(d)</ref>. Further enlarging the step number of k-step FM-Index (FM-6) decreases its search throughput improvement, due to more TLB misses.</p><p>Weakness of LISA Learned Index. LISA can search k DNA symbols after each row activation by its IP-BWT. Moreover, as Figure <ref type="figure">6</ref>(b) shows, the size of LISA linearly increases with the step number k. However, the learned index of LISA suffers from low accuracy and low cache hit rate. First, the LISA learned index has to index |G| IP-BWT entries, where |G| is the length of reference genome. For a human genome, |G| = 3G. When the learned index of LISA predicts a wrong position, LISA has to linearly search up to |G| IP-BWT entries. As Figure <ref type="figure">6</ref>(c) describes, on average, LISA has to search &#8764; 3K extra IP-BWT entries during each iteration, due to the low accuracy of its learned index. Consequently, compared to 1-step FM-Index, 21-step LISA (LISA-21) improves search throughput by only 2.15&#215; in Figure <ref type="figure">6(d)</ref>. But if LISA has a perfect learned index (LISA-21P) which always predicts the right position, compared to 1-step FM-Index, LISA-21P improves search throughput by 5.1&#215;. Further increasing the step number of LISA (LISA-32) also introduces more TLB misses, thereby achieving smaller search throughput improvement. Second, traversing the learned index's hierarchical models is also pointer chasing. The LISA learned index consumes &#8764; 1.5GB. If we assume a perfect cache (100% hit) for LISA-21P (LISA-21PC), LISA-21PC improves search throughput by 8.53&#215; over 1-step FM-Index.</p><p>Algorithmic Takeaways. (1) Implementing k-step search with moderately enlarged data structure is important for FM-Index. However, a larger step number, i.e., k, may not necessarily lead to better search throughput. ( <ref type="formula">2</ref> </p><p>Norm. throughput (d) Throughput on CPU baseline Fig. <ref type="figure">6</ref>. The inefficiency of prior FM-Index algorithms (A human genome dataset is used). In Figure <ref type="figure">6</ref>(c), we present the maximal and minimal errors, the mean of errors, and the 25 th , 50 th , 75 th percentiles of errors. In Figure <ref type="figure">6</ref>(d), FM-X means X-step conventional FM-Index; LISA-X means X-step LISA; LISA-XP means X-step LISA with a 100% accurate index; and LISA-XPC denotes X-step LISA with a 100% accurate index and a 100% hit cache.  <ref type="bibr">[12]</ref>, GPUs <ref type="bibr">[21]</ref>, FPGAs <ref type="bibr">[13]</ref>, and ASICs <ref type="bibr">[37]</ref> can accelerate only 1-step FM-Index searches. A recent FPGA design <ref type="bibr">[30]</ref> supports 2-step FM-Index searches, while k-step LISA is built merely on CPUs. Existing FM-Index application-specific accelerators including FPGAs <ref type="bibr">[13]</ref>, <ref type="bibr">[30]</ref>, and ASICs <ref type="bibr">[37]</ref> can search only 1 or 2 DNA symbols after each DRAM row activation. Therefore, they cannot fully exploit the maximal DRAM bandwidth.</p><p>Processing-In-Memories. Though recent works <ref type="bibr">[14]</ref>, <ref type="bibr">[15]</ref>, <ref type="bibr">[38]</ref>, <ref type="bibr">[39]</ref> propose PIM accelerators to process FM-Index searches, they cannot fully utilize the available DRAM bandwidth either. Most NVM-based PIMs <ref type="bibr">[14]</ref>, <ref type="bibr">[38]</ref>, <ref type="bibr">[39]</ref> focus on processing simple arithmetic computations of FM-Index by NVM arrays, but ignore optimizing external memory accesses. For instance, a ReRAM-based FM-Index PIM, FindeR <ref type="bibr">[14]</ref>, has only 2.6GB memory arrays, so it still suffers from low DRAM bandwidth utilization when fetching FM-Index buckets that cannot fit into its internal arrays from external DRAMs. Only a DRAM PIM, MEDAL <ref type="bibr">[15]</ref>, modifies its DRAM main memory for higher FM-Index search throughput. Instead of processing multiple DNA symbols during a DRAM row activation, MEDAL enables chip-level parallelism where each chip in a rank can independently process a DNA symbol by opening its partial row. In ideal case, 16 chips in a rank can enlarge FM-Index search throughput by 16&#215;, and each chip has only 1/16 row size. However, we find the DDR4 address bus shared by all chips in a rank seriously limits search throughput of MEDAL. The DDR4 address bus is only 17bit wide <ref type="bibr">[40]</ref>. During each access, the row activation and the column access serially pass their addresses via the same 17- bit bus. As Figure <ref type="figure">7</ref> shows, MEDAL can sequentially activate a 1/16 partial row in chip 0&#8764;2 . But when activating a 1/16 partial row in chip 3 , its row address (R-A 3 ) and the column address of chip 0 (C-A 0 ) compete for the same address bus. The activation in chip 3 has to be delayed to CK 12 . And idle bubbles appear in the DDR4 data bus. Because of address bus conflicts, although MEDAL claims a 68&#215; search throughput improvement over a multi-core CPU baseline, we observe it improves search throughput by only 11&#215;.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. EXMA</head><p>We first create a row-buffer-friendly alternative to FM-Index, EXMA  <ref type="figure">4</ref>, only "AC" increases its value from 0 to 1 in the row 1. Based on this observation, as Figure <ref type="figure">8</ref> shows, for each k-mer, an EXMA table stores only the row numbers of the Occ table, where its value increases. For example, for "AA", its value increases in the row 2, 3, 6, and others. We store these row number as the increments of "AA". Totally, we have f 0 "AA"s, f 1 "AC"s, . . ., and f 15 "TT"s in the Occ table, where f 0 , . . . , f 15 are non-negative integers and EXMA table has the space complexity of O(|G|log(|G|)). For a 3G-base human genome, the increments occupy 12GB. We can consecutively store the increments of all k-mers to take advantage of the row buffer locality. Each k-mer needs a base to point to its first increment. For instance, the base of "AC" is f 0 + 1 indicating its first increment is in the position f 0 + 1. Totally, a k-step EXMA table stores 4 k bases, each of which is related to a k-mer. Even if a k-mer has no increment, e.g., "TC", its base is set to MAX = |G|+1. The bases of a k-step EXMA table have the space complexity of O(4 k log(|G|)).</p><p>Backward Search. Each iteration in a backward search computes Equation <ref type="formula">1</ref>. The entire Count table costs only several bytes, so the bottleneck is the Occ table lookups. To compute Occ(k-mer, pos) in each search iteration, we compare pos against all increments of the k-mer and find the first increment larger than pos, where pos can be low or high. For instance, to compute Occ(AA, 4), we first read the base of "AA", which is 0. And then, we initialize a counter and start a linearly search from the position 0 of "AA" to MAX. If an increment is smaller than 4, we increase the counter by 1. When 6 is found, we stop, since 6 &gt; 4. At last, the counter value is 2, i.e., Occ(AA, 4) = 2.</p><p>Na&#239;ve Adoption of Learned Index. Since all increments of each k-mer are sorted, similar to LISA, we can adopt learned index <ref type="bibr">[29]</ref> to perform only one comparison to compute Occ(k-mer, pos) in the best case. We build a learned index model hierarchy for each k-mer that has &gt; 256 increments. As Figure <ref type="figure">9</ref>(a) shows, similar to LISA <ref type="bibr">[28]</ref>, to build learned indexes, we use a fixed ratio between the number of parameters of a learned index model and the number of increments that need to be indexed. As a result, if a k-mer has more increments, its learned index model has more parameters. For instance, the model of "TT" (m T T ) owns more weights and biases than that of "AA" (m AA ), since "TT" has more increments. To compute Occ(AA, pos) in a search iteration, we first read all the parameters of m AA , and input only pos to the model. If the prediction is not correct, we start a linear search from the predicted position to find the correct position. However, since an EXMA table have to index totally |G| increments, the learned index of EXMA does not have higher accuracy than that of LISA.</p><p>Step # of an EXMA Table . We tuned the step number k of an EXMA table to balance the DRAM overhead and search throughput. For a genome reference G, the size of increments in an EXMA table is constant, while the size of bases in the table is proportional to 4 k . Although a small k has few bases, the search throughput is low. For instance, for a 3Gbase human genome, if k = 2, the bases require only 32-byte. But each time, only a 2-mer can be processed by a search iteration. In contrast, a large k improves the search throughput but significantly increases the number of bases and thus the size of an EXMA table. For a human genome, as Figure <ref type="figure">10(a)</ref> shows, a 15-step EXMA table <ref type="bibr">(15)</ref>  As Figure <ref type="figure">11</ref> shows, the increments of various k-mers in 15-EXMA exhibit similar random distributions. Based on Stein's paradox <ref type="bibr">[44]</ref>, it is more accurate to approximate many independent random distributions using samples from all of them rather than approximating them separately. The MTL-based index is trained with the increments of multiple k-mers to obtain superior accuracy over learning the increments of each k-mer independently. We adopt the hard-parameter-sharing MTL <ref type="bibr">[43]</ref> that shares a subset of parameters between the learned index models of k-mers having different numbers of increments. For instance, as Figure <ref type="figure">9</ref>(b) shows, "AA" uses the smallest model (m AA ) to index its increments, since it has the fewest increments among all 2-mers. "TT" has more increments, and thus a larger model (m T T ) which contains the entire m AA . Besides m AA , m T T comprises more levels of nodes to index its increments more accurately. Compared to the na&#239;ve learned index, we add more neurons in the hidden layers of each non-leaf node of a MTLbased index to accommodate two inputs, i.e., pos and k-mer. But the size of a MTL-based index is smaller that of the na&#239;ve learned index, since the k-mers share most parameters of a MTL-based index.</p><p>Inference. The MTL-based index of an EXMA table effectively approximates Occ(k-mer, pos) as where p is the predicted position of pos in the increments of the k-mer; F (., .) is the neural network model hierarchy to estimate the probability to observe an increment &#8804; pos; f k-mer is the number of increments of the k-mer, and can be stored along the k-mer base. After each inference, we read both p and p + 1 to check whether the prediction is correct.</p><p>If not, we start a linear search to find the correct position. Therefore, the accuracy of a MTL-based index decides search throughput of FM-Index, but has no impact on the quality of final DNA mapping. A MTL-based index model hierarchy is a tree structure. To keep the index size in check, we deploy simple linear regression models <ref type="bibr">[45]</ref> as leaf nodes in the model hierarchy of the MTL-based index. A linear regression model contains only one weight and one bias. Each non-leaf node is a neural network having a fully-connected layer, each of which contains 10 neurons with sigmoid activation.</p><p>Training. The MTL-based index is built for the increments of p k-mers {T i } p i=1 . For a k-mer {T i }, its training dataset includes f i increments {x i,j } fi j=1 and their positions {y i,j } fi j=1 . The learning function for the k-mer T i is defined as w T i x+b i . Based on <ref type="bibr">[42]</ref>, <ref type="bibr">[43]</ref>, <ref type="bibr">[46]</ref>, we formulate the loss function to learn the relations between k-mers as MTL-based Index Performance. We profiled the performance of EXMA-15 equipped with a na&#239;ve learned index in Figure <ref type="figure">12</ref>. As Figure <ref type="figure">12</ref>(a) shows, 2.5E-5% and 4E-6% of 15-mers have 64K&#8764;256K and &gt;1M increments, respectively. However, searching the 15-mers having 64K&#8764;256K and &gt;1M increments consumes 36% and 20.5% of the search time respectively, as shown in Figure <ref type="figure">12(b)</ref>. This is because the na&#239;ve learned index predicts a lot wrong </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. EXMA Accelerator</head><p>We propose a hardware accelerator to process search operations over an EXMA table using a MTL-based index. We integrate two caches for the bases and the MTL-based index of an EXMA table to reduce unnecessary DRAM accesses. And then, we present EXMA scheduling to improve cache hit rate. We also introduce dynamic page policy to improve DRAM row buffer hit rate during searching the increments of an EXMA table. At last, we create CHAIN compression to reduce the EXMA table size.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>1) Accelerator Architecture</head><p>The architecture of our EXMA accelerator is shown in Figure <ref type="figure">14</ref>. The kernel of the EXMA accelerator is an inference engine computing predictions of a MTL-based index. We adopt the state-of-the-art Tangram neural network accelerator <ref type="bibr">[47]</ref> as the inference engine. The Tangram accelerator consists of a number of processing elements (PEs) organized in a 2D array. Each PE includes a simple ALU for multiplyaccumulate (MAC) operations and a small register file of 32B. A larger SRAM buffer is shared by all PEs. We add two small caches for the bases and MTL-based index of an EXMA table. Data fetched and stored by the accelerator goes through a de/compression unit ( &#167;IV-C4) that de/compresses the bases and increments of an EXMA table. We integrate a scheduling queue into the EXMA accelerator to implement 2stage EXMA scheduling ( &#167;IV-C2). At last, the dynamic page management ( &#167;IV-C3) switching between open and close page policies is implemented in the CPU memory controller.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2) EXMA Scheduling</head><p>Poor Locality of MTL-based Index. The conventional first-ready first-come-first-serve (FR-FCFS) policy is adopted by almost all accelerators <ref type="bibr">[13]</ref>- <ref type="bibr">[15]</ref>, <ref type="bibr">[30]</ref>, <ref type="bibr">[37]</ref>, <ref type="bibr">[38]</ref> to schedule FM-Index searches. However, FR-FCFS significantly degrades the hit rates of our base cache and index cache. We show an example of FR-FCFS in Figure <ref type="figure">15</ref>, where there are 4 FM-Index requests in the form of [k-mer, pos], i.e., <ref type="figure">15(a)</ref> shows, all bases are stored consecutively in the lexicographical order of kmers. Each base occupies 4-byte. So the bases of AAAA and AAAC (T T T C and T T T T ) are stored in the same 64byte. The MTL-based index used by four requests is shown in Figure <ref type="figure">15</ref>(b). To predict the increments of pos 1 and 29 (99 and 998), the MTL index nodes of m 0 , m 1 and m 3 (m 0 , m 2 and m 18 ) are required. Assume the base cache can contain only one 64-byte line, while the index cache can store three index nodes. Four requests are scheduled by FR-FCFS in Figure <ref type="figure">15(c)</ref>. When R 0 arrives, both caches are empty and thus have a miss. And then, the bases of "TTTG" and "TTTT" are stored in the base cache, while the index nodes of m 0 , m 2 and m 18 used by R 0 are stored in the index cache. For R 1 , both caches also suffer from a miss. The bases of "AAAA" and "AAAC" are fetched to the base cache, while m 0 , m 1 and m 3 used by R 1 are installed into the index cache. For R 2 , the base cache has a miss, but the index cache has a hit. At last, both cache have a miss for R 3 . Totally, four misses happen in the base cache, while three misses occur in the index cache.</p><p>2-Stage Scheduling. We propose a 2-stage EXMA scheduling technique to enhance the hit rates of the base and index caches. Unlike FR-FCFS scheduling requests based on their addresses and order, EXMA re-orders the requests according to their data including k-mers and positions (pos). In the first stage, EXMA sorts the FM-Index requests based on their k-mers. By consecutively issuing FM-Index requests in the lexicographic order of their k-mers, the hit rate of the base cache increases, since the bases of the k-mers sorted in the lexicographic order tend to have stronger spatial locality. As Figure <ref type="figure">16</ref>(a) shows, the first stage of EXMA scheduling issues four requests in the order of R 1 , R 3 , R 2 , and R 0 . The base cache has two hits and two misses, but the index cache has all four misses. This is why EXMA needs to do the second stage of scheduling. During the second stage of EXMA scheduling, four requests are ranked according to their pos values. Through consecutively computing inferences of MTL indexes of the requests having small differences between their pos values, the index cache can expect more hits. This is because the smaller difference the pos values of two requests exhibit, the more likely these two requests use the same MTL index nodes during searches. As Figure <ref type="figure">16(b)</ref> shows, the index cache has two misses and two hits. Totally, the 2-stage EXMA scheduling has 4 misses and 4 hits.</p><p>Implementation. Our 2-stage EXMA scheduling is implemented with the scheduling queue that is a content-addressable memory (CAM). A CAM can perform sorting operations <ref type="bibr">[48]</ref>. The k-mer and pos of a request can be stored in one row of the CAM. Each DNA symbol in a k-mer is denoted by 3 bits, since we need to encode $, A, C, T and G. Requests can be sorted in the CAM based on their k-mers or pos values.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>3) Dynamic Page Policy</head><p>Dynamic Page Policy. Prior FM-Index accelerators <ref type="bibr">[13]</ref>- <ref type="bibr">[15]</ref>, <ref type="bibr">[30]</ref>, <ref type="bibr">[37]</ref>, <ref type="bibr">[38]</ref> adopt close-page policy in their DRAM main memories. They always pre-charge a DRAM row after each access, since conventional 1-step FM-Index searches have little spatial locality, as shown in Figure <ref type="figure">6</ref>(a). On the contrary, our EXMA table stores the increments of a k-mer consecutively in DRAM rows. As the algorithm of FM-Index backward search (line 2&#8764;3 in Figure <ref type="figure">3(d)</ref>) indicates, each iteration issues two requests searching the same k-mer but with different position values. In a search iteration, we compute Occ(k-mer, low) and Occ(k-mer, high). Both search the increments of the same k-mer that are very likely stored in the same row. So our accelerator asks the CPU memory controller (MC) to keep the DRAM row open after the first request in a search iteration is processed, since we expect the second request can hit in the row buffer. However, the row will be pre-charged, after the second is processed.</p><p>Implementation. The dynamic page policy can be implemented in the CPU MC. When searching a request, if there is another request pending in the scheduling queue of the accelerator searches the same k-mer, the CPU MC keeps the DRAM row open after the ongoing request completes. Otherwise, it pre-charges that DRAM row. The CPU MC maintains a register to indicate whether all rows are closed, and another register to record which row is open for each bank.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>4) CHAIN compression</head><p>B&#916;I. The state-of-the-art cache compression technique, B&#916;I <ref type="bibr">[49]</ref>, breaks a 64-byte cache line into eight 8-byte data sections. As Figure <ref type="figure">17</ref>(a) shows, to compress the cache line, B&#916;I records the first data section (data 0 ) and stores only the difference (&#916; i ) between each data section (data i ) and data 0 . To decompress a data section, B&#916;I simply calculates data 0 1 ...  data i = data 0 +&#916; i . B&#916;I typically reduces data size of SPEC-CPU2006 applications by &#8764; 50%. In these applications, data sections in a cache line are not sorted.</p><p>CHAIN. Since both increments and bases of each k-mer are sorted and stored consecutively in a DRAM row, we believe they are more compressible than the data of SPEC-CPU2006 applications. Therefore, we propose a novel compression technique, CHAIN, to more aggressively compress an EXMA table. As Figure <ref type="figure">17</ref>(b) describes, to compress the increments in a 64B memory line, CHAIN first stores the first increment (incr 0 ). And then, it stores the value difference (&#916; i ) between two consecutive increments. So we have &#916; i = incr i -incr i-1 . To decompress an increment incr i in a 64B memory line, CHAIN simply computes incr i = incr 0 + i j=1 &#916; j . Bases of an EXMA table can be (de)compressed in the same way.</p><p>Implementation. The CHAIN compression and decompression require only 64-bit adders. Multiple adders concurrently operate for the CHAIN compression, while the CHAIN decompression requires only one adder for accumulations. The CHAIN decompression slightly prolongs FM-Index search latency but greatly increases FM-Index search throughput.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>5) Putting all together</head><p>As Figure <ref type="figure">14</ref> describes, &#10102; after receiving FM-Index requests from the CPU, the accelerator stores them in its scheduling queue and performs the first stage scheduling. &#10103; Based on their k-mers, the accelerator checks whether the bases of the requests stored in the queue are in the base cache or not. &#10104; If misses occur, DRAM accesses are issued to fetch the bases. Otherwise, the accelerator does the second stage scheduling. &#10105; The accelerator checks whether the MTL index nodes required by the requests in the queue are in the index cache or not, according to both k-mer and pos values. &#10106; If misses happen, DRAM accesses are issued to fetch MTL index nodes. Otherwise, the inference engine computes with MTL index nodes. &#10107; Until the inference of a leaf node is finished, the accelerator issues a DRAM access to read the increment in the predicted position. If the increment is correct, the computation of Occ(k-mer, pos) is completed. Otherwise, it linearly searches DRAM rows to find the correct increment. &#10108; All DRAM accesses from the EXMA accelerator are managed by its DMA controller communicating with the CPU MC, which decides whether to pre-charge opened rows based on the requests in the scheduling queue of the accelerator. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>6) System Integration</head><p>Our EXMA is connected to a CPU processor as a looselycoupled non-coherent accelerator <ref type="bibr">[50]</ref>, <ref type="bibr">[51]</ref> by a Network-on-Chip (NoC). EXMA accesses DRAM via two DMA-dedicated planes of the NoC, bypassing the cache hierarchy of the CPU. The EXMA data region must be flushed from the CPU cache hierarchy before FM-Index searches start. We chose the noncoherent model <ref type="bibr">[50]</ref> for better performance, since the memory footprint of FM-Index searches is always larger than the CPU LLC capacity.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D. Design Overhead</head><p>The training overhead of a MTL-based index is shown in the Section of Training in &#167;IV-B. The hardware overhead of the EXMA accelerator is summarized in Table <ref type="table">I</ref>. From <ref type="bibr">[47]</ref>, we adopted the inference engine, which runs at 800MHz and is synthesized with Synopsys 28nm generic library. We quantized the model hierarchy of MTL index with 8-bit without accuracy degradation. A PE has an 8-bit MAC ALU and a 32B register file. The inference engine contains 4 8 &#215; 8 PE arrays, each of which has a 16KB shared SRAM buffer and an activation unit. The EXMA accelerator also includes a scheduling queue (SRAM CAM) with 512 128-bit entries, a 32KB 16-way SRAM index cache, and a 1MB 8-way eDRAM base cache. We modeled the area and power of memory components including registers, buffers and caches by CACTI <ref type="bibr">[53]</ref>. We used the same DDR4-2400 DRAM main memory configuration as the recent FM-Index PIM MEDAL <ref type="bibr">[15]</ref>. The EXMA accelerator connects to four DRAM channels, with a total 384GB capacity. We adopted DRAMPower <ref type="bibr">[54]</ref> to model the power consumption of our DDR4 main memory.</p><p>V. EXPERIMENTAL METHODOLOGY Simulation. We used gem5-aladdin <ref type="bibr">[55]</ref> to model our CPU baseline and our EXMA accelerator. The configuration of our CPU baseline is shown in Table <ref type="table">I</ref>. We used McPAT <ref type="bibr">[56]</ref> to calculate the power consumption of the CPU processor. We implemented the main memory system using DRAMsim2 <ref type="bibr">[57]</ref>.</p><p>Accelerator Baselines. Besides CPU, we also ran the FM-Index search kernel on an Nvidia Tesla P100 GPU <ref type="bibr">[58]</ref>, a Stratix-V FPGA <ref type="bibr">[30]</ref>, and a 28nm ASIC design <ref type="bibr">[37]</ref>. We compared EXMA against recent FM-Index PIM designs, MEDAL <ref type="bibr">[15]</ref> and FindeR <ref type="bibr">[14]</ref>. We used gem5-gpu <ref type="bibr">[59]</ref> to simulate the GPU, and gem5-aladdin to model the computing units of FPGA, ASIC and PIMs. All their DRAM main memories are implemented by DRAMsim2. The power data of the GPU, FPGA, ASIC and PIMs are adopted from <ref type="bibr">[14]</ref>, <ref type="bibr">[15]</ref>, <ref type="bibr">[30]</ref>, <ref type="bibr">[37]</ref>, <ref type="bibr">[58]</ref>. The power of DRAM main memories is also modeled by DRAMPower. Workloads. To evaluate EXMA, we adopted FM-Indexbased genome analysis applications: BWA-MEM <ref type="bibr">[12]</ref> for short read alignment, MA <ref type="bibr">[16]</ref> for long read alignment, SGA <ref type="bibr">[24]</ref> for read assembly, ExactWordMatch <ref type="bibr">[25]</ref> for annotation and a reference-based compression algorithm <ref type="bibr">[26]</ref>. SGA for long reads uses the FM-Index-based error correcting scheme <ref type="bibr">[33]</ref> to reduce errors.</p><p>Datasets. For alignment, annotation and compression, we used human (human, 3G-bp), picea glauca (picea, 20G-bp), and pinus lambertiana (pinus, 31G-bp) genomes as reference genomes. To study short reads, we adopted DWGSim <ref type="bibr">[60]</ref> to generate 101-bp short reads with 50&#215; coverage. To evaluate long reads, we created long reads (with length of 1K-bp) by PBSIM <ref type="bibr">[61]</ref>. The error profiles of reads is summarized in the format of (name, mismatch%, insertion%, deletion%, total error%), i.e., (Illumina, 0.18%, 0.01%, 0.01%, 0.2%) <ref type="bibr">[62]</ref>, (PacBio, 1.50%, 9.02%, 4.49%, 15.01%), and (ONT 2D, 16.50%, 5.10%, 8.40%, 30.0%) <ref type="bibr">[10]</ref>.</p><p>Schemes. The schemes we studied can be summarized as: &#8226; CPU: We ran LISA-21 for FM-Index searches in genome applications on our CPU baseline. We also applied B&#916;I <ref type="bibr">[49]</ref> compression on LISA data for three datasets.  based index is the largest among 3 datasets, and thus its index cache has the lowest hit rate. On average, EXMA increases search throughput by 23.6&#215; over CPU.</p><p>Performance Comparison against CPU. We report and compare the speedup achieved by EXMA in various genome applications in Figure <ref type="figure">19</ref>, where we list 3 sets of "alignment and assembly" for reads generated by Illumina, Nanopore, and PacBio respectively. For each application, although EXMA obtains smaller FM-Index search throughput improvement on larger datasets (Figure <ref type="figure">18</ref>), e.g., pinus, EXMA improves the application performance more significantly on larger datasets. This is because CPU consumes a larger portion of the execution time of a genome analysis application to perform FM-Index searches when processing larger datasets that introduce more TLB and data cache misses. EXMA achieves larger performance improvement on alignment and assembly for Illumina, annotation, and compression, since FM-Index searches dominate the execution of these applications. On average, EXMA improves the performance of genome applications by 2.5&#215; &#8764; 3.2&#215;, when processing various datasets. Energy Comparison against CPU. We compare the energy reduction obtained by EXMA in various genome applications in Figure <ref type="figure">20</ref>, where we list 3 sets of "align(ment) and asse(mbly)" for reads generated by Illumina, Nanopore, and PacBio respectively. On average, EXMA reduces total energy consumption of genome analysis by 61% &#8764; 70% when processing different datasets. The major part of the energy reduction comes from voiding using the CPU processor during FM-Index searches. The more time FM-Index searches consume in a genome analysis application, the more energy reduction EXMA can achieve in that application. On average, the EXMA accelerator consumes only &lt; 3% of the total energy consumption of various genome applications. The vast majority of energy consumption is consumed by the DRAM main memory and the CPU handling non-FM-Index-search parts in genome analysis applications.</p><p>Comparison against Accelerators. We evaluated EXMA and compare it against various hardware accelerators including a GPU <ref type="bibr">[58]</ref>, a FPGA <ref type="bibr">[30]</ref>, an ASIC <ref type="bibr">[37]</ref>, and two PIMs <ref type="bibr">[14]</ref>, <ref type="bibr">[15]</ref> when processing pinus in Table <ref type="table">II</ref>. Not all accelerators can run the whole genome applications, so we use "million GPU FPGA <ref type="bibr">[30]</ref> ASIC <ref type="bibr">[37]</ref> MEDAL <ref type="bibr">[15]</ref> FindeR <ref type="bibr">[14]</ref>   <ref type="figure">21</ref> shows the comparison of bandwidth utilization, which is defined as the ratio between the data capacity fetched from DRAM and total DRAM bandwidth. ASIC using FM-1 has only 26% of the total DRAM bandwidth, since it uses close-page policy and fetches only 64B after activating a 2KB row. GPU implementing LISA-21 fetches entire rows from host memory, so it achieves higher bandwidth utilization. MEDAL increases bandwidth utilization by activating each individual chips. However, due to conflicts on the address bus, MEDAL uses only 67% of the DRAM bandwidth. In contrast, EXMA obtains 91% bandwidth utiliza-tion by switching between close-page and open-page policies.</p><p>DIMM number. We studied the sensitivity of EXMA and MEDAL to the DIMM number in Figure <ref type="figure">22</ref>. With 2 DIMMs, EXMA improves search throughput by 29% over MEDAL. By having 3 DIMMs, EXMA linearly scales its throughput up by 40%, since a single EXMA accelerator can maintain all the DIMMs. However, MEDAL increases its throughput by only 14.5% with 3 DIMMs. Each MEDAL PIM accelerator sits on a DIMM. More DIMMs bring more ranks. MEDAL suffers from non-trivial inter-DIMM communication overhead. When the number of DIMM increases to 4, the search throughput of neither EXMA nor MEDAL increases significantly. The data bus (bandwidth utilization) of EXMA is saturated, while the address bus of MEDAL is saturated. PE Array number. We show search throughput of EXMA with a varying number of PE arrays in Figure <ref type="figure">22</ref>. Two PE arrays of EXMA already achieve 89% of the search throughput of the configuration with four PE arrays. This is because the computations of MTL-based indexes are not intensive. Further increasing the PE array number to 8 increases search throughput by only 3% over the configuration with four PE arrays. So we selected 4 PE arrays in our baseline configuration.</p><p>CAM &amp; Cache. We explored search throughput of EXMA with varying CAM and base cache sizes in Figure <ref type="figure">22</ref>. We use a CAM consisting of 256, 512, and 1024 entries to serve as the scheduling queue of EXMA. A 256-entry CAM cannot fully satisfy 2-stage scheduling and scheduling for dynamic page policy, and thus achieves only 77% of search throughput of the configuration with a 512-entry CAM. Further increasing the CAM entry number to 1K improves search throughput by only 2% over the configuration with a 512-entry CAM. Compared to the index cache, the search throughput is more sensitive to the capacity of the base cache, since the global buffer and register file of PE arrays can temporarily store MTL-based index nodes. We tried 512KB, 1MB and 2MB for the base cache. The search throughput stops increasing significantly, when the base cache capacity reaches 1MB. So we selected a 512-entry CAM and a 1MB base cache in our baseline configuration.</p><p>CHAIN. We show the compression result of CHAIN on pinus in Figure <ref type="figure">23</ref>. Since the size of the IP-BWT table of LISA-21 is proportional to its step number, the total data size of LISA-21 (original) is 2.2&#215; larger than that of EXMA-15 (original). After B&#916;I compresses the data size of LISA-21 to 50%, i.e., 152GB. On the contrary, CHAIN compresses the data size of EXMA-15 to only 25%, i.e., 40GB. We observed similar compression rates of B&#916;I and CHAIN on the other genome datasets.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VII. CONCLUSION</head><p>Though state-of-the-art genome analysis adopts FM-Index to process exact-matches, FM-Index is notorious of random memory access patterns. In this paper, we first present a row-buffer-friendly and highly-compressible EXMA table with a MTL-based index to process multiple DNA symbols by activating a DRAM row during each search iteration. And then, we build a hardware accelerator to process FM-Index searches on a EXMA table. Compared to the state-of-the-art FM-Index PIM MEDAL, EXMA improves search throughput by 4.9&#215;, and enhances search throughput per Watt by 4.8&#215;.</p></div><note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0"><p>Authorized licensed use limited to: Indiana University. Downloaded on August 02,2021 at 00:31:20 UTC from IEEE Xplore. Restrictions apply.</p></note>
		</body>
		</text>
</TEI>
