-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2 from necst/feature/cgo25
Feature/cgo25
- Loading branch information
Showing
177 changed files
with
184,534 additions
and
5,229,598 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
build_* | ||
builds | ||
.vscode | ||
*.log | ||
*.jou | ||
proj | ||
__pycache__ | ||
debug*.dot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,6 @@ | ||
[submodule "cicero_compiler"] | ||
path = cicero_compiler | ||
url = https://github.com/necst/cicero_compiler.git | ||
[submodule "cicero_compiler_cpp"] | ||
path = cicero_compiler_cpp | ||
url = https://github.com/necst/cicero_compiler_cpp |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# CICERO: A Domain-Specific Architecture for Efficient Regular Expression Matching | ||
|
||
Cicero is a domain specific architecture that can be employed to perform exact regular expression (RE) matching using FPGAs. | ||
The cool fact about Cicero is that - as other software libraries one among the other RE2 - does not suffer from backtracking problem. | ||
This means that when it elaborate a REs that carry some kind of non-determinsm (e.,g. a?a ) it does not take a guess and then backtrack but can explore all the different options in a single pass of the input string. | ||
|
||
If you are interested in the topic take a look at [Russ Cox article](https://swtch.com/~rsc/regexp/regexp1.html) | ||
|
||
Here it follows an high level overview of Cicero Engines and how they can be combined together. | ||
|
||
|
||
![cicero_engine_multi_char](./figures/cicero_multi_new.png) | ||
![cicero_multi_new_interconnection 1](./figures/cicero_engine_multi_char.png) | ||
|
||
Cicero has its own [compiler](https://github.com/necst/cicero_compiler/) that converts REs in our custom ISA. | ||
|
||
|
||
|
||
|
||
If you find this repository useful, please use the following citation: | ||
|
||
``` | ||
@article{parravicini2021cicero, | ||
title = {{CICERO}: A Domain-Specific Architecture for Efficient Regular Expression Matching}, | ||
author = {Daniele Parravicini and Davide Conficconi and Emanuele Del Sozzo and Christian Pilato and Marco D. Santambrogio}, | ||
journal = {{ACM} Transactions on Embedded Computing Systems}, | ||
year = 2021, | ||
month = {oct}, | ||
publisher = {Association for Computing Machinery ({ACM})}, | ||
volume = {20}, | ||
number = {5s}, | ||
pages = {1--24}, | ||
doi = {10.1145/3476982}, | ||
url = {https://doi.org/10.1145%2F3476982}, | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
NEW*.csv | ||
OLD*.csv |
Binary file not shown.
Oops, something went wrong.